/*! For license information please see showcase.js.LICENSE.txt */

var e,
  t,
  i,
  n,
  s = {
    81826: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/safari.png'
    },
    24877: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/showcase-password-background.jpg'
    },

    89992: (e) => {
      'use strict'
      e.exports =
        ''
    },
    31896: (e) => {
      'use strict'
      e.exports =
        ''
    },
    78899: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/escape.png'
    },
    7560: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/headset-cardboard.png'
    },
    49529: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/headset-quest-2.png'
    },
    31891: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/Desktop-help-play-button.svg'
    },
    71002: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/Desktop-help-spacebar.png'
    },
    14653: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/mattertag-disc-128-free.v1.png'
    },
    94874: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/mobile-help-play-button.svg'
    },
    86533: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_360.png'
    },
    70626: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_click_inside.png'
    },
    72145: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_gesture_drag.png'
    },
    12742: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_gesture_drag_two_finger.png'
    },
    5435: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_gesture_pinch.png'
    },
    67649: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_gesture_position.png'
    },
    2433: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_gesture_position_two_finger.png'
    },
    24367: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_gesture_tap.png'
    },
    64549: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_inside_key.png'
    },
    76064: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_keyboard_all.png'
    },
    81202: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_keyboard_left_right.png'
    },
    42135: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_keyboard_up_down.png'
    },
    41891: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_mouse_click.png'
    },
    73993: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_mouse_drag_left.png'
    },
    26668: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_mouse_drag_right.png'
    },
    82906: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_mouse_position_left.png'
    },
    64991: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_mouse_position_right.png'
    },
    12136: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_mouse_zoom.png'
    },
    90619: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_tap_inside.png'
    },
    26407: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/nav_help_zoom_keys.png'
    },
    22016: (e) => {
      'use strict'
      e.exports = JSON.parse(
        '{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.0.0","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":60,"w":876,"h":744,"nm":"Rating Modal","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":4,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[437.969,578.877,0],"to":[0,-8.167,0],"ti":[0,8.167,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18,"s":[437.969,529.877,0],"to":[0,0,0],"ti":[0,0,0]},{"t":25,"s":[437.969,529.877,0]}],"ix":2},"a":{"a":0,"k":[0,51.205,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.83,0.808,0.833],"y":[1.233,0.833,0.35]},"o":{"x":[0.283,0.284,0],"y":[-0.056,-0.064,0]},"t":0,"s":[176.81,195.773,100]},{"i":{"x":[0.564,0.562,0.794],"y":[3.244,0.849,2.131]},"o":{"x":[0.466,0.473,0.167],"y":[-4.295,-0.161,0.141]},"t":23,"s":[207.791,222.842,100]},{"t":28,"s":[207.791,207.791,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.52,0.008],[0,0],[0,0],[0.001,-0.183],[-8.335,-0.035],[-1.024,7.367],[-0.728,2.537],[0,0],[2.38,0.806],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[2.516,0.006],[0,0],[0,0],[0.432,0.025],[0,0],[2.518,0.008],[0,0],[0,0],[0.409,-0.037],[0,0],[2.516,0.006],[0,0],[0,0],[0.401,-0.185],[0,0]],"o":[[-2.516,-0.006],[0,0],[0,0],[-0.027,8.335],[7.643,0.021],[0.358,-2.606],[0,0],[0,0],[-2.387,-0.816],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.514,-0.01],[0,0],[-0.415,-0.039],[0,0],[0,0],[-2.518,-0.01],[0,0],[-0.423,0.021],[0,0],[0,0],[-2.514,-0.008],[0,0],[-0.44,0.144],[0,0],[0,0]],"v":[[-33.701,-15.143],[-36.223,-12.631],[-36.281,6.241],[-36.285,7.503],[-21.234,22.652],[-6.23,9.641],[-4.465,1.945],[-2.629,-4.438],[-4.202,-7.63],[-7.4,-6.064],[-11.102,2.545],[-12.356,1.279],[-12.356,0.023],[-12.35,-1.377],[-12.3,-18.852],[-14.806,-21.374],[-17.328,-18.866],[-17.38,-2.341],[-18.642,-2.448],[-18.584,-20.126],[-21.092,-22.652],[-23.616,-20.144],[-23.674,-2.463],[-24.928,-2.376],[-24.885,-17.628],[-27.394,-20.155],[-29.917,-17.645],[-29.968,-1.429],[-31.228,-0.933],[-31.189,-12.617]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-2.52,0.008],[0,0],[0,0],[-0.001,-0.183],[8.335,-0.035],[1.024,7.367],[0.728,2.537],[0,0],[-2.378,0.806],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.516,0.006],[0,0],[0,0],[-0.432,0.025],[0,0],[-2.518,0.008],[0,0],[0,0],[-0.407,-0.037],[0,0],[-2.518,0.006],[0,0],[0,0],[-0.399,-0.185],[0,0]],"o":[[2.516,-0.006],[0,0],[0,0],[0.029,8.335],[-7.645,0.021],[-0.358,-2.606],[0,0],[0,0],[2.389,-0.816],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[2.514,-0.01],[0,0],[0.415,-0.039],[0,0],[0,0],[2.518,-0.01],[0,0],[0.426,0.021],[0,0],[0,0],[2.514,-0.008],[0,0],[0.438,0.144],[0,0],[0,0]],"v":[[33.701,-15.143],[36.223,-12.631],[36.281,6.241],[36.285,7.503],[21.234,22.652],[6.23,9.641],[4.465,1.945],[2.629,-4.438],[4.202,-7.63],[7.4,-6.064],[11.102,2.545],[12.354,1.279],[12.354,0.023],[12.348,-1.377],[12.298,-18.852],[14.804,-21.374],[17.328,-18.866],[17.38,-2.341],[18.642,-2.448],[18.584,-20.126],[21.092,-22.652],[23.618,-20.144],[23.674,-2.463],[24.928,-2.376],[24.882,-17.628],[27.394,-20.155],[29.917,-17.645],[29.968,-1.429],[31.226,-0.933],[31.187,-12.617]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[3.333,-0.333]],"o":[[-1.2,-5.2],[0,0]],"v":[[22.51,8.041],[11.01,2.541]],"c":false},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[-3.333,-0.333]],"o":[[1.2,-5.2],[0,0]],"v":[[-21.99,7.614],[-10.49,2.114]],"c":false},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[1,0.192156862745,0.345098039216,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[1,0.192156862745,0.345098039216,1]},{"t":26,"s":[0.133333333333,0.133333333333,0.133333333333,1]}],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[0]},{"t":27,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[435.195,196.412,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":23,"s":[209.366,209.366,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":31,"s":[257.214,257.214,100]},{"t":35,"s":[209.366,209.366,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[33.137,0],[0,-33.137],[-33.137,0],[0,33.137]],"o":[[-33.137,0],[0,33.137],[33.137,0],[0,-33.137]],"v":[[-0.955,14.988],[-60.955,74.988],[-0.955,134.988],[59.045,74.988]],"c":true}]},{"t":31,"s":[{"i":[[47.354,0],[0,-47.354],[-47.354,0],[0,47.354]],"o":[[-47.354,0],[0,47.354],[47.354,0],[0,-47.354]],"v":[[0.906,-36.975],[-84.837,48.768],[0.906,134.511],[86.648,48.768]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.9,-0.695],[-0.438,0],[-0.403,0.524],[0,0],[0.9,0.695],[0.689,-0.896],[0,0]],"o":[[0.372,0.288],[0.617,0],[0,0],[0.695,-0.898],[-0.898,-0.699],[0,0],[-0.695,0.898]],"v":[[10.071,7.71],[11.325,8.137],[12.953,7.34],[19.076,-0.584],[18.706,-3.468],[15.825,-3.098],[9.701,4.826]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.615,0],[-0.376,0.29],[0.693,0.898],[0,0],[0.898,-0.693],[-0.693,-0.898]],"o":[[0.405,0.524],[0.44,0],[0.898,-0.695],[0,0],[-0.697,-0.898],[-0.898,0.695],[0,0]],"v":[[-12.955,7.338],[-11.327,8.137],[-10.069,7.71],[-9.699,4.826],[-15.823,-3.098],[-18.707,-3.468],[-19.079,-0.584]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[-1.135,0],[0,1.135],[0,0],[1.137,0],[0,-1.135]],"o":[[0,1.135],[1.137,0],[0,0],[0,-1.135],[-1.135,0],[0,0]],"v":[[-2.12,2.14],[-0.065,4.196],[1.991,2.14],[1.991,-6.082],[-0.065,-8.137],[-2.12,-6.082]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.131453797221,0.131453797221,0.131453797221,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":23,"op":253,"st":-47,"bm":0}],"markers":[]}'
      )
    },
    63064: (e) => {
      'use strict'
      e.exports =
        ''
    },
    2116: (e, t, i) => {
      'use strict'
      i.d(t, { Z: () => r, A: () => o })
      var n = i(26605),
        s = i(85861)
      function r(e) {
        if (!e.prototype || !e.prototype.render)
          return e.__scuWrap || (e.__scuWrap = a(e, h))
        e.prototype.shouldComponentUpdate = l
      }
      function o(e) {
        if (!e.prototype || !e.prototype.render)
          return e.__scuWrap || (e.__scuWrap = a(e, s.NK))
        e.prototype.shouldComponentUpdate = c
      }
      function a(e, t) {
        class Wrap extends Wrapper {}
        return (
          (Wrap.prototype.renderChild = e), (Wrap.prototype.diffFunc = t), Wrap
        )
      }
      class Wrapper extends n.Component {
        shouldComponentUpdate(e) {
          return this.diffFunc(e, this.props)
        }
        render(e, t, i) {
          return this.renderChild(e, i)
        }
      }
      function l(e, t) {
        return h(e, this.props) || h(t, this.state)
      }
      function c(e, t) {
        return h(e, this.props) || (0, s.NK)(t, this.state)
      }
      function h(e, t) {
        for (let i in e) if (e[i] !== t[i]) return !0
        for (let i in t) if (!(i in e)) return !0
        return !1
      }
    },

    88296: (e) => {
      'use strict'
      e.exports =
        ''
    },
    92759: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/login-screen-background.jpg'
    },

    48072: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/360_placement_pin_mask.png'
    },

    89411: (e, t, i) => {
      'use strict'
      e.exports = i.p + 'images/tagmask.png'
    },

    35367: () => {},

    72191: () => {},

    81506: (e) => {
      e.exports = function (e) {
        if (void 0 === e)
          throw new ReferenceError(
            "this hasn't been initialised - super() hasn't been called"
          )
        return e
      }
    },
    34575: (e) => {
      e.exports = function (e, t) {
        if (!(e instanceof t))
          throw new TypeError('Cannot call a class as a function')
      }
    },
    93913: (e) => {
      function t(e, t) {
        for (var i = 0; i < t.length; i++) {
          var n = t[i]
          ;(n.enumerable = n.enumerable || !1),
            (n.configurable = !0),
            'value' in n && (n.writable = !0),
            Object.defineProperty(e, n.key, n)
        }
      }
      e.exports = function (e, i, n) {
        return i && t(e.prototype, i), n && t(e, n), e
      }
    },
    16525: (e, t, i) => {
      var n = i(58331)
      function s(t, i, r) {
        return (
          'undefined' != typeof Reflect && Reflect.get
            ? (e.exports = s = Reflect.get)
            : (e.exports = s =
                function (e, t, i) {
                  var s = n(e, t)
                  if (s) {
                    var r = Object.getOwnPropertyDescriptor(s, t)
                    return r.get ? r.get.call(i) : r.value
                  }
                }),
          s(t, i, r || t)
        )
      }
      e.exports = s
    },
    29754: (e) => {
      function t(i) {
        return (
          (e.exports = t =
            Object.setPrototypeOf
              ? Object.getPrototypeOf
              : function (e) {
                  return e.__proto__ || Object.getPrototypeOf(e)
                }),
          t(i)
        )
      }
      e.exports = t
    },
    2205: (e, t, i) => {
      var n = i(99489)
      e.exports = function (e, t) {
        if ('function' != typeof t && null !== t)
          throw new TypeError(
            'Super expression must either be null or a function'
          )
        ;(e.prototype = Object.create(t && t.prototype, {
          constructor: { value: e, writable: !0, configurable: !0 }
        })),
          t && n(e, t)
      }
    },
    95318: (e) => {
      e.exports = function (e) {
        return e && e.__esModule ? e : { default: e }
      }
    },
    78585: (e, t, i) => {
      var n = i(50008),
        s = i(81506)
      e.exports = function (e, t) {
        return !t || ('object' !== n(t) && 'function' != typeof t) ? s(e) : t
      }
    },
    99489: (e) => {
      function t(i, n) {
        return (
          (e.exports = t =
            Object.setPrototypeOf ||
            function (e, t) {
              return (e.__proto__ = t), e
            }),
          t(i, n)
        )
      }
      e.exports = t
    },
    58331: (e, t, i) => {
      var n = i(29754)
      e.exports = function (e, t) {
        for (
          ;
          !Object.prototype.hasOwnProperty.call(e, t) && null !== (e = n(e));

        );
        return e
      }
    },
    50008: (e) => {
      function t(i) {
        return (
          'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
            ? (e.exports = t =
                function (e) {
                  return typeof e
                })
            : (e.exports = t =
                function (e) {
                  return e &&
                    'function' == typeof Symbol &&
                    e.constructor === Symbol &&
                    e !== Symbol.prototype
                    ? 'symbol'
                    : typeof e
                }),
          t(i)
        )
      }
      e.exports = t
    },
    25179: (e, t, i) => {
      'use strict'
      i.d(t, { Z: () => s })
      var n = i(6308)
      class MDCComponent {
        static attachTo(e) {
          return new MDCComponent(e, new n.Z())
        }
        constructor(e, t, ...i) {
          ;(this.root_ = e),
            this.initialize(...i),
            (this.foundation_ = void 0 === t ? this.getDefaultFoundation() : t),
            this.foundation_.init(),
            this.initialSyncWithDOM()
        }
        initialize() {}
        getDefaultFoundation() {
          throw new Error(
            'Subclasses must override getDefaultFoundation to return a properly configured foundation class'
          )
        }
        initialSyncWithDOM() {}
        destroy() {
          this.foundation_.destroy()
        }
        listen(e, t) {
          this.root_.addEventListener(e, t)
        }
        unlisten(e, t) {
          this.root_.removeEventListener(e, t)
        }
        emit(e, t, i = !1) {
          let n
          'function' == typeof CustomEvent
            ? (n = new CustomEvent(e, { detail: t, bubbles: i }))
            : ((n = document.createEvent('CustomEvent')),
              n.initCustomEvent(e, i, !1, t)),
            this.root_.dispatchEvent(n)
        }
      }
      const s = MDCComponent
    },
    6308: (e, t, i) => {
      'use strict'
      i.d(t, { Z: () => n })
      const n = class MDCFoundation {
        static get cssClasses() {
          return {}
        }
        static get strings() {
          return {}
        }
        static get numbers() {
          return {}
        }
        static get defaultAdapter() {
          return {}
        }
        constructor(e = {}) {
          this.adapter_ = e
        }
        init() {}
        destroy() {}
      }
    },
    30888: (e, t, i) => {
      'use strict'
      i.r(t),
        i.d(t, {
          MDCRipple: () => MDCRipple,
          MDCRippleFoundation: () => y,
          RippleCapableSurface: () => RippleCapableSurface,
          util: () => n
        })
      var n = {}
      i.r(n),
        i.d(n, {
          applyPassive: () => u,
          getMatchesProperty: () => p,
          getNormalizedEventCoords: () => m,
          supportsCssVariables: () => d
        })
      var s = i(25179),
        r = i(6308)
      const o = {
          ROOT: 'mdc-ripple-upgraded',
          UNBOUNDED: 'mdc-ripple-upgraded--unbounded',
          BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',
          FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',
          FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation'
        },
        a = {
          VAR_LEFT: '--mdc-ripple-left',
          VAR_TOP: '--mdc-ripple-top',
          VAR_FG_SIZE: '--mdc-ripple-fg-size',
          VAR_FG_SCALE: '--mdc-ripple-fg-scale',
          VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',
          VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end'
        },
        l = {
          PADDING: 10,
          INITIAL_ORIGIN_SCALE: 0.6,
          DEACTIVATION_TIMEOUT_MS: 225,
          FG_DEACTIVATION_MS: 150,
          TAP_DELAY_MS: 300
        }
      let c, h
      function d(e, t = !1) {
        let i = c
        if ('boolean' == typeof c && !t) return i
        if (!(e.CSS && 'function' == typeof e.CSS.supports)) return
        const n = e.CSS.supports('--css-vars', 'yes'),
          s =
            e.CSS.supports('(--css-vars: yes)') &&
            e.CSS.supports('color', '#00000000')
        return (
          (i =
            !(!n && !s) &&
            !(function (e) {
              const t = e.document,
                i = t.createElement('div')
              ;(i.className = 'mdc-ripple-surface--test-edge-var-bug'),
                t.body.appendChild(i)
              const n = e.getComputedStyle(i),
                s = null !== n && 'solid' === n.borderTopStyle
              return i.remove(), s
            })(e)),
          t || (c = i),
          i
        )
      }
      function u(e = window, t = !1) {
        if (void 0 === h || t) {
          let t = !1
          try {
            e.document.addEventListener('test', null, {
              get passive() {
                t = !0
              }
            })
          } catch (e) {}
          h = t
        }
        return !!h && { passive: !0 }
      }
      function p(e) {
        return ['webkitMatchesSelector', 'msMatchesSelector', 'matches']
          .filter((t) => t in e)
          .pop()
      }
      function m(e, t, i) {
        const { x: n, y: s } = t,
          r = n + i.left,
          o = s + i.top
        let a, l
        return (
          'touchstart' === e.type
            ? ((a = e.changedTouches[0].pageX - r),
              (l = e.changedTouches[0].pageY - o))
            : ((a = e.pageX - r), (l = e.pageY - o)),
          { x: a, y: l }
        )
      }
      const g = ['touchstart', 'pointerdown', 'mousedown', 'keydown'],
        f = ['touchend', 'pointerup', 'mouseup']
      let v = []
      class MDCRippleFoundation extends r.Z {
        static get cssClasses() {
          return o
        }
        static get strings() {
          return a
        }
        static get numbers() {
          return l
        }
        static get defaultAdapter() {
          return {
            browserSupportsCssVars: () => {},
            isUnbounded: () => {},
            isSurfaceActive: () => {},
            isSurfaceDisabled: () => {},
            addClass: () => {},
            removeClass: () => {},
            containsEventTarget: () => {},
            registerInteractionHandler: () => {},
            deregisterInteractionHandler: () => {},
            registerDocumentInteractionHandler: () => {},
            deregisterDocumentInteractionHandler: () => {},
            registerResizeHandler: () => {},
            deregisterResizeHandler: () => {},
            updateCssVariable: () => {},
            computeBoundingRect: () => {},
            getWindowPageOffset: () => {}
          }
        }
        constructor(e) {
          super(Object.assign(MDCRippleFoundation.defaultAdapter, e)),
            (this.layoutFrame_ = 0),
            (this.frame_ = { width: 0, height: 0 }),
            (this.activationState_ = this.defaultActivationState_()),
            (this.initialSize_ = 0),
            (this.maxRadius_ = 0),
            (this.activateHandler_ = (e) => this.activate_(e)),
            (this.deactivateHandler_ = (e) => this.deactivate_(e)),
            (this.focusHandler_ = () => this.handleFocus()),
            (this.blurHandler_ = () => this.handleBlur()),
            (this.resizeHandler_ = () => this.layout()),
            (this.unboundedCoords_ = { left: 0, top: 0 }),
            (this.fgScale_ = 0),
            (this.activationTimer_ = 0),
            (this.fgDeactivationRemovalTimer_ = 0),
            (this.activationAnimationHasEnded_ = !1),
            (this.activationTimerCallback_ = () => {
              ;(this.activationAnimationHasEnded_ = !0),
                this.runDeactivationUXLogicIfReady_()
            }),
            (this.previousActivationEvent_ = null)
        }
        supportsPressRipple_() {
          return this.adapter_.browserSupportsCssVars()
        }
        defaultActivationState_() {
          return {
            isActivated: !1,
            hasDeactivationUXRun: !1,
            wasActivatedByPointer: !1,
            wasElementMadeActive: !1,
            activationEvent: null,
            isProgrammatic: !1
          }
        }
        init() {
          const e = this.supportsPressRipple_()
          if ((this.registerRootHandlers_(e), e)) {
            const { ROOT: e, UNBOUNDED: t } = MDCRippleFoundation.cssClasses
            requestAnimationFrame(() => {
              this.adapter_.addClass(e),
                this.adapter_.isUnbounded() &&
                  (this.adapter_.addClass(t), this.layoutInternal_())
            })
          }
        }
        destroy() {
          if (this.supportsPressRipple_()) {
            this.activationTimer_ &&
              (clearTimeout(this.activationTimer_),
              (this.activationTimer_ = 0),
              this.adapter_.removeClass(
                MDCRippleFoundation.cssClasses.FG_ACTIVATION
              )),
              this.fgDeactivationRemovalTimer_ &&
                (clearTimeout(this.fgDeactivationRemovalTimer_),
                (this.fgDeactivationRemovalTimer_ = 0),
                this.adapter_.removeClass(
                  MDCRippleFoundation.cssClasses.FG_DEACTIVATION
                ))
            const { ROOT: e, UNBOUNDED: t } = MDCRippleFoundation.cssClasses
            requestAnimationFrame(() => {
              this.adapter_.removeClass(e),
                this.adapter_.removeClass(t),
                this.removeCssVars_()
            })
          }
          this.deregisterRootHandlers_(), this.deregisterDeactivationHandlers_()
        }
        registerRootHandlers_(e) {
          e &&
            (g.forEach((e) => {
              this.adapter_.registerInteractionHandler(e, this.activateHandler_)
            }),
            this.adapter_.isUnbounded() &&
              this.adapter_.registerResizeHandler(this.resizeHandler_)),
            this.adapter_.registerInteractionHandler(
              'focus',
              this.focusHandler_
            ),
            this.adapter_.registerInteractionHandler('blur', this.blurHandler_)
        }
        registerDeactivationHandlers_(e) {
          'keydown' === e.type
            ? this.adapter_.registerInteractionHandler(
                'keyup',
                this.deactivateHandler_
              )
            : f.forEach((e) => {
                this.adapter_.registerDocumentInteractionHandler(
                  e,
                  this.deactivateHandler_
                )
              })
        }
        deregisterRootHandlers_() {
          g.forEach((e) => {
            this.adapter_.deregisterInteractionHandler(e, this.activateHandler_)
          }),
            this.adapter_.deregisterInteractionHandler(
              'focus',
              this.focusHandler_
            ),
            this.adapter_.deregisterInteractionHandler(
              'blur',
              this.blurHandler_
            ),
            this.adapter_.isUnbounded() &&
              this.adapter_.deregisterResizeHandler(this.resizeHandler_)
        }
        deregisterDeactivationHandlers_() {
          this.adapter_.deregisterInteractionHandler(
            'keyup',
            this.deactivateHandler_
          ),
            f.forEach((e) => {
              this.adapter_.deregisterDocumentInteractionHandler(
                e,
                this.deactivateHandler_
              )
            })
        }
        removeCssVars_() {
          const { strings: e } = MDCRippleFoundation
          Object.keys(e).forEach((t) => {
            0 === t.indexOf('VAR_') &&
              this.adapter_.updateCssVariable(e[t], null)
          })
        }
        activate_(e) {
          if (this.adapter_.isSurfaceDisabled()) return
          const t = this.activationState_
          if (t.isActivated) return
          const i = this.previousActivationEvent_
          if (i && e && i.type !== e.type) return
          ;(t.isActivated = !0),
            (t.isProgrammatic = null === e),
            (t.activationEvent = e),
            (t.wasActivatedByPointer =
              !t.isProgrammatic &&
              ('mousedown' === e.type ||
                'touchstart' === e.type ||
                'pointerdown' === e.type))
          e &&
          v.length > 0 &&
          v.some((e) => this.adapter_.containsEventTarget(e))
            ? this.resetActivationState_()
            : (e && (v.push(e.target), this.registerDeactivationHandlers_(e)),
              (t.wasElementMadeActive = this.checkElementMadeActive_(e)),
              t.wasElementMadeActive && this.animateActivation_(),
              requestAnimationFrame(() => {
                ;(v = []),
                  t.wasElementMadeActive ||
                    (' ' !== e.key && 32 !== e.keyCode) ||
                    ((t.wasElementMadeActive = this.checkElementMadeActive_(e)),
                    t.wasElementMadeActive && this.animateActivation_()),
                  t.wasElementMadeActive ||
                    (this.activationState_ = this.defaultActivationState_())
              }))
        }
        checkElementMadeActive_(e) {
          return !e || 'keydown' !== e.type || this.adapter_.isSurfaceActive()
        }
        activate(e = null) {
          this.activate_(e)
        }
        animateActivation_() {
          const { VAR_FG_TRANSLATE_START: e, VAR_FG_TRANSLATE_END: t } =
              MDCRippleFoundation.strings,
            { FG_DEACTIVATION: i, FG_ACTIVATION: n } =
              MDCRippleFoundation.cssClasses,
            { DEACTIVATION_TIMEOUT_MS: s } = MDCRippleFoundation.numbers
          this.layoutInternal_()
          let r = '',
            o = ''
          if (!this.adapter_.isUnbounded()) {
            const { startPoint: e, endPoint: t } =
              this.getFgTranslationCoordinates_()
            ;(r = `${e.x}px, ${e.y}px`), (o = `${t.x}px, ${t.y}px`)
          }
          this.adapter_.updateCssVariable(e, r),
            this.adapter_.updateCssVariable(t, o),
            clearTimeout(this.activationTimer_),
            clearTimeout(this.fgDeactivationRemovalTimer_),
            this.rmBoundedActivationClasses_(),
            this.adapter_.removeClass(i),
            this.adapter_.computeBoundingRect(),
            this.adapter_.addClass(n),
            (this.activationTimer_ = setTimeout(
              () => this.activationTimerCallback_(),
              s
            ))
        }
        getFgTranslationCoordinates_() {
          const { activationEvent: e, wasActivatedByPointer: t } =
            this.activationState_
          let i
          ;(i = t
            ? m(
                e,
                this.adapter_.getWindowPageOffset(),
                this.adapter_.computeBoundingRect()
              )
            : { x: this.frame_.width / 2, y: this.frame_.height / 2 }),
            (i = {
              x: i.x - this.initialSize_ / 2,
              y: i.y - this.initialSize_ / 2
            })
          return {
            startPoint: i,
            endPoint: {
              x: this.frame_.width / 2 - this.initialSize_ / 2,
              y: this.frame_.height / 2 - this.initialSize_ / 2
            }
          }
        }
        runDeactivationUXLogicIfReady_() {
          const { FG_DEACTIVATION: e } = MDCRippleFoundation.cssClasses,
            { hasDeactivationUXRun: t, isActivated: i } = this.activationState_
          ;(t || !i) &&
            this.activationAnimationHasEnded_ &&
            (this.rmBoundedActivationClasses_(),
            this.adapter_.addClass(e),
            (this.fgDeactivationRemovalTimer_ = setTimeout(() => {
              this.adapter_.removeClass(e)
            }, l.FG_DEACTIVATION_MS)))
        }
        rmBoundedActivationClasses_() {
          const { FG_ACTIVATION: e } = MDCRippleFoundation.cssClasses
          this.adapter_.removeClass(e),
            (this.activationAnimationHasEnded_ = !1),
            this.adapter_.computeBoundingRect()
        }
        resetActivationState_() {
          ;(this.previousActivationEvent_ =
            this.activationState_.activationEvent),
            (this.activationState_ = this.defaultActivationState_()),
            setTimeout(
              () => (this.previousActivationEvent_ = null),
              MDCRippleFoundation.numbers.TAP_DELAY_MS
            )
        }
        deactivate_(e) {
          const t = this.activationState_
          if (!t.isActivated) return
          const i = Object.assign({}, t)
          if (t.isProgrammatic) {
            const e = null
            requestAnimationFrame(() => this.animateDeactivation_(e, i)),
              this.resetActivationState_()
          } else
            this.deregisterDeactivationHandlers_(),
              requestAnimationFrame(() => {
                ;(this.activationState_.hasDeactivationUXRun = !0),
                  this.animateDeactivation_(e, i),
                  this.resetActivationState_()
              })
        }
        deactivate(e = null) {
          this.deactivate_(e)
        }
        animateDeactivation_(
          e,
          { wasActivatedByPointer: t, wasElementMadeActive: i }
        ) {
          ;(t || i) && this.runDeactivationUXLogicIfReady_()
        }
        layout() {
          this.layoutFrame_ && cancelAnimationFrame(this.layoutFrame_),
            (this.layoutFrame_ = requestAnimationFrame(() => {
              this.layoutInternal_(), (this.layoutFrame_ = 0)
            }))
        }
        layoutInternal_() {
          this.frame_ = this.adapter_.computeBoundingRect()
          const e = Math.max(this.frame_.height, this.frame_.width)
          ;(this.maxRadius_ = this.adapter_.isUnbounded()
            ? e
            : (() =>
                Math.sqrt(
                  Math.pow(this.frame_.width, 2) +
                    Math.pow(this.frame_.height, 2)
                ) + MDCRippleFoundation.numbers.PADDING)()),
            (this.initialSize_ =
              e * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE),
            (this.fgScale_ = this.maxRadius_ / this.initialSize_),
            this.updateLayoutCssVars_()
        }
        updateLayoutCssVars_() {
          const {
            VAR_FG_SIZE: e,
            VAR_LEFT: t,
            VAR_TOP: i,
            VAR_FG_SCALE: n
          } = MDCRippleFoundation.strings
          this.adapter_.updateCssVariable(e, `${this.initialSize_}px`),
            this.adapter_.updateCssVariable(n, this.fgScale_),
            this.adapter_.isUnbounded() &&
              ((this.unboundedCoords_ = {
                left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2),
                top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2)
              }),
              this.adapter_.updateCssVariable(
                t,
                `${this.unboundedCoords_.left}px`
              ),
              this.adapter_.updateCssVariable(
                i,
                `${this.unboundedCoords_.top}px`
              ))
        }
        setUnbounded(e) {
          const { UNBOUNDED: t } = MDCRippleFoundation.cssClasses
          e ? this.adapter_.addClass(t) : this.adapter_.removeClass(t)
        }
        handleFocus() {
          requestAnimationFrame(() =>
            this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED)
          )
        }
        handleBlur() {
          requestAnimationFrame(() =>
            this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED)
          )
        }
      }
      const y = MDCRippleFoundation
      class MDCRipple extends s.Z {
        constructor(...e) {
          super(...e), (this.disabled = !1), this.unbounded_
        }
        static attachTo(e, { isUnbounded: t } = {}) {
          const i = new MDCRipple(e)
          return void 0 !== t && (i.unbounded = t), i
        }
        static createAdapter(e) {
          const t = p(HTMLElement.prototype)
          return {
            browserSupportsCssVars: () => d(window),
            isUnbounded: () => e.unbounded,
            isSurfaceActive: () => e.root_[t](':active'),
            isSurfaceDisabled: () => e.disabled,
            addClass: (t) => e.root_.classList.add(t),
            removeClass: (t) => e.root_.classList.remove(t),
            containsEventTarget: (t) => e.root_.contains(t),
            registerInteractionHandler: (t, i) =>
              e.root_.addEventListener(t, i, u()),
            deregisterInteractionHandler: (t, i) =>
              e.root_.removeEventListener(t, i, u()),
            registerDocumentInteractionHandler: (e, t) =>
              document.documentElement.addEventListener(e, t, u()),
            deregisterDocumentInteractionHandler: (e, t) =>
              document.documentElement.removeEventListener(e, t, u()),
            registerResizeHandler: (e) => window.addEventListener('resize', e),
            deregisterResizeHandler: (e) =>
              window.removeEventListener('resize', e),
            updateCssVariable: (t, i) => e.root_.style.setProperty(t, i),
            computeBoundingRect: () => e.root_.getBoundingClientRect(),
            getWindowPageOffset: () => ({
              x: window.pageXOffset,
              y: window.pageYOffset
            })
          }
        }
        get unbounded() {
          return this.unbounded_
        }
        set unbounded(e) {
          ;(this.unbounded_ = Boolean(e)), this.setUnbounded_()
        }
        setUnbounded_() {
          this.foundation_.setUnbounded(this.unbounded_)
        }
        activate() {
          this.foundation_.activate()
        }
        deactivate() {
          this.foundation_.deactivate()
        }
        layout() {
          this.foundation_.layout()
        }
        getDefaultFoundation() {
          return new y(MDCRipple.createAdapter(this))
        }
        initialSyncWithDOM() {
          this.unbounded = 'mdcRippleIsUnbounded' in this.root_.dataset
        }
      }
      class RippleCapableSurface {}
      RippleCapableSurface.prototype.root_,
        RippleCapableSurface.prototype.unbounded,
        RippleCapableSurface.prototype.disabled
    },
    69826: (e, t, i) => {
      'use strict'
      i.r(t),
        i.d(t, { MDCSlider: () => MDCSlider, MDCSliderFoundation: () => w })
      var n = i(25179)
      const s = {
          ACTIVE: 'mdc-slider--active',
          DISABLED: 'mdc-slider--disabled',
          DISCRETE: 'mdc-slider--discrete',
          FOCUS: 'mdc-slider--focus',
          IN_TRANSIT: 'mdc-slider--in-transit',
          IS_DISCRETE: 'mdc-slider--discrete',
          HAS_TRACK_MARKER: 'mdc-slider--display-markers'
        },
        r = {
          TRACK_SELECTOR: '.mdc-slider__track',
          TRACK_MARKER_CONTAINER_SELECTOR:
            '.mdc-slider__track-marker-container',
          LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child',
          THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container',
          PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker',
          ARIA_VALUEMIN: 'aria-valuemin',
          ARIA_VALUEMAX: 'aria-valuemax',
          ARIA_VALUENOW: 'aria-valuenow',
          ARIA_DISABLED: 'aria-disabled',
          STEP_DATA_ATTR: 'data-step',
          CHANGE_EVENT: 'MDCSlider:change',
          INPUT_EVENT: 'MDCSlider:input'
        },
        o = { PAGE_FACTOR: 4 }
      const a = {
          animationstart: {
            noPrefix: 'animationstart',
            webkitPrefix: 'webkitAnimationStart',
            styleProperty: 'animation'
          },
          animationend: {
            noPrefix: 'animationend',
            webkitPrefix: 'webkitAnimationEnd',
            styleProperty: 'animation'
          },
          animationiteration: {
            noPrefix: 'animationiteration',
            webkitPrefix: 'webkitAnimationIteration',
            styleProperty: 'animation'
          },
          transitionend: {
            noPrefix: 'transitionend',
            webkitPrefix: 'webkitTransitionEnd',
            styleProperty: 'transition'
          }
        },
        l = {
          animation: {
            noPrefix: 'animation',
            webkitPrefix: '-webkit-animation'
          },
          transform: {
            noPrefix: 'transform',
            webkitPrefix: '-webkit-transform'
          },
          transition: {
            noPrefix: 'transition',
            webkitPrefix: '-webkit-transition'
          }
        }
      function c(e, t) {
        if (
          !(function (e) {
            return (
              void 0 !== e.document &&
              'function' == typeof e.document.createElement
            )
          })(e) ||
          !(function (e) {
            return e in a || e in l
          })(t)
        )
          return t
        const i = t in a ? a : l,
          n = e.document.createElement('div')
        let s = ''
        return (
          (s =
            i === a
              ? (function (e, t, i) {
                  return t[e].styleProperty in i.style
                    ? t[e].noPrefix
                    : t[e].webkitPrefix
                })(t, i, n)
              : i[t].noPrefix in n.style
              ? i[t].noPrefix
              : i[t].webkitPrefix),
          s
        )
      }
      function h(e, t) {
        return c(e, t)
      }
      var d = i(6308)
      const u = 'ArrowLeft',
        p = 'ArrowRight',
        m = 'ArrowUp',
        g = 'ArrowDown',
        f = 'Home',
        v = 'End',
        y = 'PageUp',
        b = 'PageDown',
        S = {
          mousedown: 'mousemove',
          touchstart: 'touchmove',
          pointerdown: 'pointermove'
        },
        E = ['mousedown', 'pointerdown', 'touchstart'],
        T = ['mouseup', 'pointerup', 'touchend']
      class MDCSliderFoundation extends d.Z {
        static get cssClasses() {
          return s
        }
        static get strings() {
          return r
        }
        static get numbers() {
          return o
        }
        static get defaultAdapter() {
          return {
            hasClass: () => !1,
            addClass: () => {},
            removeClass: () => {},
            getAttribute: () => null,
            setAttribute: () => {},
            removeAttribute: () => {},
            computeBoundingRect: () => ({
              top: 0,
              right: 0,
              bottom: 0,
              left: 0,
              width: 0,
              height: 0
            }),
            getTabIndex: () => 0,
            registerInteractionHandler: () => {},
            deregisterInteractionHandler: () => {},
            registerThumbContainerInteractionHandler: () => {},
            deregisterThumbContainerInteractionHandler: () => {},
            registerBodyInteractionHandler: () => {},
            deregisterBodyInteractionHandler: () => {},
            registerResizeHandler: () => {},
            deregisterResizeHandler: () => {},
            notifyInput: () => {},
            notifyChange: () => {},
            setThumbContainerStyleProperty: () => {},
            setTrackStyleProperty: () => {},
            setMarkerValue: () => {},
            appendTrackMarkers: () => {},
            removeTrackMarkers: () => {},
            setLastTrackMarkersStyleProperty: () => {},
            isRTL: () => !1
          }
        }
        constructor(e) {
          super(Object.assign(MDCSliderFoundation.defaultAdapter, e)),
            (this.rect_ = null),
            (this.savedTabIndex_ = NaN),
            (this.active_ = !1),
            (this.inTransit_ = !1),
            (this.isDiscrete_ = !1),
            (this.hasTrackMarker_ = !1),
            (this.handlingThumbTargetEvt_ = !1),
            (this.min_ = 0),
            (this.max_ = 100),
            (this.step_ = 0),
            (this.value_ = 0),
            (this.disabled_ = !1),
            (this.preventFocusState_ = !1),
            (this.updateUIFrame_ = 0),
            (this.thumbContainerPointerHandler_ = () => {
              this.handlingThumbTargetEvt_ = !0
            }),
            (this.interactionStartHandler_ = (e) => this.handleDown_(e)),
            (this.keydownHandler_ = (e) => this.handleKeydown_(e)),
            (this.focusHandler_ = () => this.handleFocus_()),
            (this.blurHandler_ = () => this.handleBlur_()),
            (this.resizeHandler_ = () => this.layout())
        }
        init() {
          ;(this.isDiscrete_ = this.adapter_.hasClass(s.IS_DISCRETE)),
            (this.hasTrackMarker_ = this.adapter_.hasClass(s.HAS_TRACK_MARKER)),
            E.forEach((e) =>
              this.adapter_.registerInteractionHandler(
                e,
                this.interactionStartHandler_
              )
            ),
            this.adapter_.registerInteractionHandler(
              'keydown',
              this.keydownHandler_
            ),
            this.adapter_.registerInteractionHandler(
              'focus',
              this.focusHandler_
            ),
            this.adapter_.registerInteractionHandler('blur', this.blurHandler_),
            E.forEach((e) => {
              this.adapter_.registerThumbContainerInteractionHandler(
                e,
                this.thumbContainerPointerHandler_
              )
            }),
            this.adapter_.registerResizeHandler(this.resizeHandler_),
            this.layout(),
            this.isDiscrete_ && 0 == this.getStep() && (this.step_ = 1)
        }
        destroy() {
          E.forEach((e) => {
            this.adapter_.deregisterInteractionHandler(
              e,
              this.interactionStartHandler_
            )
          }),
            this.adapter_.deregisterInteractionHandler(
              'keydown',
              this.keydownHandler_
            ),
            this.adapter_.deregisterInteractionHandler(
              'focus',
              this.focusHandler_
            ),
            this.adapter_.deregisterInteractionHandler(
              'blur',
              this.blurHandler_
            ),
            E.forEach((e) => {
              this.adapter_.deregisterThumbContainerInteractionHandler(
                e,
                this.thumbContainerPointerHandler_
              )
            }),
            this.adapter_.deregisterResizeHandler(this.resizeHandler_)
        }
        setupTrackMarker() {
          if (this.isDiscrete_ && this.hasTrackMarker_ && 0 != this.getStep()) {
            const e = this.getMin(),
              t = this.getMax(),
              i = this.getStep()
            let n = (t - e) / i
            const s = Math.ceil(n) !== n
            if (
              (s && (n = Math.ceil(n)),
              this.adapter_.removeTrackMarkers(),
              this.adapter_.appendTrackMarkers(n),
              s)
            ) {
              const e = (t - n * i) / i + 1,
                s = h(window, 'flex')
              this.adapter_.setLastTrackMarkersStyleProperty(s, String(e))
            }
          }
        }
        layout() {
          ;(this.rect_ = this.adapter_.computeBoundingRect()),
            this.updateUIForCurrentValue_()
        }
        getValue() {
          return this.value_
        }
        setValue(e) {
          this.setValue_(e, !1)
        }
        getMax() {
          return this.max_
        }
        setMax(e) {
          if (e < this.min_)
            throw new Error(
              "Cannot set max to be less than the slider's minimum value"
            )
          ;(this.max_ = e),
            this.setValue_(this.value_, !1, !0),
            this.adapter_.setAttribute(r.ARIA_VALUEMAX, String(this.max_)),
            this.setupTrackMarker()
        }
        getMin() {
          return this.min_
        }
        setMin(e) {
          if (e > this.max_)
            throw new Error(
              "Cannot set min to be greater than the slider's maximum value"
            )
          ;(this.min_ = e),
            this.setValue_(this.value_, !1, !0),
            this.adapter_.setAttribute(r.ARIA_VALUEMIN, String(this.min_)),
            this.setupTrackMarker()
        }
        getStep() {
          return this.step_
        }
        setStep(e) {
          if (e < 0) throw new Error('Step cannot be set to a negative number')
          this.isDiscrete_ && ('number' != typeof e || e < 1) && (e = 1),
            (this.step_ = e),
            this.setValue_(this.value_, !1, !0),
            this.setupTrackMarker()
        }
        isDisabled() {
          return this.disabled_
        }
        setDisabled(e) {
          ;(this.disabled_ = e),
            this.toggleClass_(s.DISABLED, this.disabled_),
            this.disabled_
              ? ((this.savedTabIndex_ = this.adapter_.getTabIndex()),
                this.adapter_.setAttribute(r.ARIA_DISABLED, 'true'),
                this.adapter_.removeAttribute('tabindex'))
              : (this.adapter_.removeAttribute(r.ARIA_DISABLED),
                isNaN(this.savedTabIndex_) ||
                  this.adapter_.setAttribute(
                    'tabindex',
                    String(this.savedTabIndex_)
                  ))
        }
        handleDown_(e) {
          if (this.disabled_) return
          ;(this.preventFocusState_ = !0),
            this.setInTransit_(!this.handlingThumbTargetEvt_),
            (this.handlingThumbTargetEvt_ = !1),
            this.setActive_(!0)
          const t = (e) => {
              this.handleMove_(e)
            },
            i = () => {
              this.handleUp_(),
                this.adapter_.deregisterBodyInteractionHandler(S[e.type], t),
                T.forEach((e) =>
                  this.adapter_.deregisterBodyInteractionHandler(e, i)
                )
            }
          this.adapter_.registerBodyInteractionHandler(S[e.type], t),
            T.forEach((e) =>
              this.adapter_.registerBodyInteractionHandler(e, i)
            ),
            this.setValueFromEvt_(e)
        }
        handleMove_(e) {
          e.preventDefault(), this.setValueFromEvt_(e)
        }
        handleUp_() {
          this.setActive_(!1), this.adapter_.notifyChange()
        }
        getPageX_(e) {
          return e.targetTouches && e.targetTouches.length > 0
            ? e.targetTouches[0].pageX
            : e.pageX
        }
        setValueFromEvt_(e) {
          const t = this.getPageX_(e),
            i = this.computeValueFromPageX_(t)
          this.setValue_(i, !0)
        }
        computeValueFromPageX_(e) {
          const { max_: t, min_: i } = this
          let n = (e - this.rect_.left) / this.rect_.width
          return this.adapter_.isRTL() && (n = 1 - n), i + n * (t - i)
        }
        handleKeydown_(e) {
          const t = this.getKeyId_(e),
            i = this.getValueForKeyId_(t)
          isNaN(i) ||
            (e.preventDefault(),
            this.adapter_.addClass(s.FOCUS),
            this.setValue_(i, !0),
            this.adapter_.notifyChange())
        }
        getKeyId_(e) {
          return e.key === u || 37 === e.keyCode
            ? u
            : e.key === p || 39 === e.keyCode
            ? p
            : e.key === m || 38 === e.keyCode
            ? m
            : e.key === g || 40 === e.keyCode
            ? g
            : e.key === f || 36 === e.keyCode
            ? f
            : e.key === v || 35 === e.keyCode
            ? v
            : e.key === y || 33 === e.keyCode
            ? y
            : e.key === b || 34 === e.keyCode
            ? b
            : ''
        }
        getValueForKeyId_(e) {
          const { max_: t, min_: i, step_: n } = this
          let s = n || (t - i) / 100
          switch (
            (this.adapter_.isRTL() && (e === u || e === p) && (s = -s), e)
          ) {
            case u:
            case g:
              return this.value_ - s
            case p:
            case m:
              return this.value_ + s
            case f:
              return this.min_
            case v:
              return this.max_
            case y:
              return this.value_ + s * o.PAGE_FACTOR
            case b:
              return this.value_ - s * o.PAGE_FACTOR
            default:
              return NaN
          }
        }
        handleFocus_() {
          this.preventFocusState_ || this.adapter_.addClass(s.FOCUS)
        }
        handleBlur_() {
          ;(this.preventFocusState_ = !1), this.adapter_.removeClass(s.FOCUS)
        }
        setValue_(e, t, i = !1) {
          if (e === this.value_ && !i) return
          const { min_: n, max_: s } = this,
            o = e === n || e === s
          this.step_ && !o && (e = this.quantize_(e)),
            e < n ? (e = n) : e > s && (e = s),
            (this.value_ = e),
            this.adapter_.setAttribute(r.ARIA_VALUENOW, String(this.value_)),
            this.updateUIForCurrentValue_(),
            t &&
              (this.adapter_.notifyInput(),
              this.isDiscrete_ && this.adapter_.setMarkerValue(e))
        }
        quantize_(e) {
          return Math.round(e / this.step_) * this.step_
        }
        updateUIForCurrentValue_() {
          const { max_: e, min_: t, value_: i } = this,
            n = (i - t) / (e - t)
          let s = n * this.rect_.width
          this.adapter_.isRTL() && (s = this.rect_.width - s)
          const r = h(window, 'transform'),
            o = c(window, 'transitionend')
          if (this.inTransit_) {
            const e = () => {
              this.setInTransit_(!1),
                this.adapter_.deregisterThumbContainerInteractionHandler(o, e)
            }
            this.adapter_.registerThumbContainerInteractionHandler(o, e)
          }
          this.updateUIFrame_ = requestAnimationFrame(() => {
            this.adapter_.setThumbContainerStyleProperty(
              r,
              `translateX(${s}px) translateX(-50%)`
            ),
              this.adapter_.setTrackStyleProperty(r, `scaleX(${n})`)
          })
        }
        setActive_(e) {
          ;(this.active_ = e), this.toggleClass_(s.ACTIVE, this.active_)
        }
        setInTransit_(e) {
          ;(this.inTransit_ = e),
            this.toggleClass_(s.IN_TRANSIT, this.inTransit_)
        }
        toggleClass_(e, t) {
          t ? this.adapter_.addClass(e) : this.adapter_.removeClass(e)
        }
      }
      const w = MDCSliderFoundation
      class MDCSlider extends n.Z {
        static attachTo(e) {
          return new MDCSlider(e)
        }
        constructor(...e) {
          super(...e),
            this.thumbContainer_,
            this.track_,
            this.pinValueMarker_,
            this.trackMarkerContainer_
        }
        get value() {
          return this.foundation_.getValue()
        }
        set value(e) {
          this.foundation_.setValue(e)
        }
        get min() {
          return this.foundation_.getMin()
        }
        set min(e) {
          this.foundation_.setMin(e)
        }
        get max() {
          return this.foundation_.getMax()
        }
        set max(e) {
          this.foundation_.setMax(e)
        }
        get step() {
          return this.foundation_.getStep()
        }
        set step(e) {
          this.foundation_.setStep(e)
        }
        get disabled() {
          return this.foundation_.isDisabled()
        }
        set disabled(e) {
          this.foundation_.setDisabled(e)
        }
        initialize() {
          ;(this.thumbContainer_ = this.root_.querySelector(
            r.THUMB_CONTAINER_SELECTOR
          )),
            (this.track_ = this.root_.querySelector(r.TRACK_SELECTOR)),
            (this.pinValueMarker_ = this.root_.querySelector(
              r.PIN_VALUE_MARKER_SELECTOR
            )),
            (this.trackMarkerContainer_ = this.root_.querySelector(
              r.TRACK_MARKER_CONTAINER_SELECTOR
            ))
        }
        getDefaultFoundation() {
          return new w({
            hasClass: (e) => this.root_.classList.contains(e),
            addClass: (e) => this.root_.classList.add(e),
            removeClass: (e) => this.root_.classList.remove(e),
            getAttribute: (e) => this.root_.getAttribute(e),
            setAttribute: (e, t) => this.root_.setAttribute(e, t),
            removeAttribute: (e) => this.root_.removeAttribute(e),
            computeBoundingRect: () => this.root_.getBoundingClientRect(),
            getTabIndex: () => this.root_.tabIndex,
            registerInteractionHandler: (e, t) => {
              this.root_.addEventListener(e, t)
            },
            deregisterInteractionHandler: (e, t) => {
              this.root_.removeEventListener(e, t)
            },
            registerThumbContainerInteractionHandler: (e, t) => {
              this.thumbContainer_.addEventListener(e, t)
            },
            deregisterThumbContainerInteractionHandler: (e, t) => {
              this.thumbContainer_.removeEventListener(e, t)
            },
            registerBodyInteractionHandler: (e, t) => {
              document.body.addEventListener(e, t)
            },
            deregisterBodyInteractionHandler: (e, t) => {
              document.body.removeEventListener(e, t)
            },
            registerResizeHandler: (e) => {
              window.addEventListener('resize', e)
            },
            deregisterResizeHandler: (e) => {
              window.removeEventListener('resize', e)
            },
            notifyInput: () => {
              this.emit(r.INPUT_EVENT, this)
            },
            notifyChange: () => {
              this.emit(r.CHANGE_EVENT, this)
            },
            setThumbContainerStyleProperty: (e, t) => {
              this.thumbContainer_.style.setProperty(e, t)
            },
            setTrackStyleProperty: (e, t) => {
              this.track_.style.setProperty(e, t)
            },
            setMarkerValue: (e) => {
              this.pinValueMarker_.innerText = e
            },
            appendTrackMarkers: (e) => {
              const t = document.createDocumentFragment()
              for (let i = 0; i < e; i++) {
                const e = document.createElement('div')
                e.classList.add('mdc-slider__track-marker'), t.appendChild(e)
              }
              this.trackMarkerContainer_.appendChild(t)
            },
            removeTrackMarkers: () => {
              for (; this.trackMarkerContainer_.firstChild; )
                this.trackMarkerContainer_.removeChild(
                  this.trackMarkerContainer_.firstChild
                )
            },
            setLastTrackMarkersStyleProperty: (e, t) => {
              this.root_
                .querySelector(r.LAST_TRACK_MARKER_SELECTOR)
                .style.setProperty(e, t)
            },
            isRTL: () => 'rtl' === getComputedStyle(this.root_).direction
          })
        }
        initialSyncWithDOM() {
          const e = parseFloat(this.root_.getAttribute(r.ARIA_VALUENOW))
          ;(this.min =
            parseFloat(this.root_.getAttribute(r.ARIA_VALUEMIN)) || this.min),
            (this.max =
              parseFloat(this.root_.getAttribute(r.ARIA_VALUEMAX)) || this.max),
            (this.step =
              parseFloat(this.root_.getAttribute(r.STEP_DATA_ATTR)) ||
              this.step),
            (this.value = e || this.value),
            (this.disabled =
              this.root_.hasAttribute(r.ARIA_DISABLED) &&
              'false' !== this.root_.getAttribute(r.ARIA_DISABLED)),
            this.foundation_.setupTrackMarker()
        }
        layout() {
          this.foundation_.layout()
        }
        stepUp(e = this.step || 1) {
          this.value += e
        }
        stepDown(e = this.step || 1) {
          this.value -= e
        }
      }
    },

    47056: (e, t) => {
      'use strict'
      var i
      function n(e, t, n) {
        if (!n || typeof n.value !== i.typeOfFunction)
          throw new TypeError(
            'Only methods can be decorated with @bind. <' +
              t +
              '> is not a method!'
          )
        return {
          configurable: i.boolTrue,
          get: function () {
            var e = n.value.bind(this)
            return (
              Object.defineProperty(this, t, {
                value: e,
                configurable: i.boolTrue,
                writable: i.boolTrue
              }),
              e
            )
          }
        }
      }
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (function (e) {
          ;(e.typeOfFunction = 'function'), (e.boolTrue = !0)
        })(i || (i = {})),
        (t.bind = n),
        (t.default = n)
    },
    21924: (e, t, i) => {
      'use strict'
      var n = i(40210),
        s = i(55559),
        r = s(n('String.prototype.indexOf'))
      e.exports = function (e, t) {
        var i = n(e, !!t)
        return 'function' == typeof i && r(e, '.prototype.') > -1 ? s(i) : i
      }
    },
    55559: (e, t, i) => {
      'use strict'
      var n = i(58612),
        s = i(40210),
        r = s('%Function.prototype.apply%'),
        o = s('%Function.prototype.call%'),
        a = s('%Reflect.apply%', !0) || n.call(o, r),
        l = s('%Object.getOwnPropertyDescriptor%', !0),
        c = s('%Object.defineProperty%', !0),
        h = s('%Math.max%')
      if (c)
        try {
          c({}, 'a', { value: 1 })
        } catch (e) {
          c = null
        }
      e.exports = function (e) {
        var t = a(n, o, arguments)
        if (l && c) {
          var i = l(t, 'length')
          i.configurable &&
            c(t, 'length', {
              value: 1 + h(0, e.length - (arguments.length - 1))
            })
        }
        return t
      }
      var d = function () {
        return a(n, r, arguments)
      }
      c ? c(e.exports, 'apply', { value: d }) : (e.exports.apply = d)
    },
    94184: (e, t) => {
      var i
      !(function () {
        'use strict'
        var n = {}.hasOwnProperty
        function s() {
          for (var e = [], t = 0; t < arguments.length; t++) {
            var i = arguments[t]
            if (i) {
              var r = typeof i
              if ('string' === r || 'number' === r) e.push(i)
              else if (Array.isArray(i) && i.length) {
                var o = s.apply(null, i)
                o && e.push(o)
              } else if ('object' === r)
                for (var a in i) n.call(i, a) && i[a] && e.push(a)
            }
          }
          return e.join(' ')
        }
        e.exports
          ? ((s.default = s), (e.exports = s))
          : void 0 ===
              (i = function () {
                return s
              }.apply(t, [])) || (e.exports = i)
      })()
    },
    4289: (e, t, i) => {
      'use strict'
      var n = i(82215),
        s = 'function' == typeof Symbol && 'symbol' == typeof Symbol('foo'),
        r = Object.prototype.toString,
        o = Array.prototype.concat,
        a = Object.defineProperty,
        l =
          a &&
          (function () {
            var e = {}
            try {
              for (var t in (a(e, 'x', { enumerable: !1, value: e }), e))
                return !1
              return e.x === e
            } catch (e) {
              return !1
            }
          })(),
        c = function (e, t, i, n) {
          var s
          ;(!(t in e) ||
            ('function' == typeof (s = n) &&
              '[object Function]' === r.call(s) &&
              n())) &&
            (l
              ? a(e, t, {
                  configurable: !0,
                  enumerable: !1,
                  value: i,
                  writable: !0
                })
              : (e[t] = i))
        },
        h = function (e, t) {
          var i = arguments.length > 2 ? arguments[2] : {},
            r = n(t)
          s && (r = o.call(r, Object.getOwnPropertySymbols(t)))
          for (var a = 0; a < r.length; a += 1) c(e, r[a], t[r[a]], i[r[a]])
        }
      ;(h.supportsDescriptors = !!l), (e.exports = h)
    },

    13733: (e, t, i) => {
      'use strict'
      e.exports = i(28631)
    },
    27308: (e, t, i) => {
      'use strict'
      var n = i(40210),
        s = n('%String%'),
        r = n('%TypeError%')
      e.exports = function (e) {
        if ('symbol' == typeof e)
          throw new r('Cannot convert a Symbol value to a string')
        return s(e)
      }
    },
    28631: (e, t, i) => {
      'use strict'
      var n = i(40210)('%TypeError%')
      e.exports = function (e, t) {
        if (null == e) throw new n(t || 'Cannot call method on ' + e)
        return e
      }
    },

    94029: (e, t, i) => {
      'use strict'
      var n = i(95320),
        s = Object.prototype.toString,
        r = Object.prototype.hasOwnProperty,
        o = function (e, t, i) {
          for (var n = 0, s = e.length; n < s; n++)
            r.call(e, n) && (null == i ? t(e[n], n, e) : t.call(i, e[n], n, e))
        },
        a = function (e, t, i) {
          for (var n = 0, s = e.length; n < s; n++)
            null == i ? t(e.charAt(n), n, e) : t.call(i, e.charAt(n), n, e)
        },
        l = function (e, t, i) {
          for (var n in e)
            r.call(e, n) && (null == i ? t(e[n], n, e) : t.call(i, e[n], n, e))
        }
      e.exports = function (e, t, i) {
        if (!n(t)) throw new TypeError('iterator must be a function')
        var r
        arguments.length >= 3 && (r = i),
          '[object Array]' === s.call(e)
            ? o(e, t, r)
            : 'string' == typeof e
            ? a(e, t, r)
            : l(e, t, r)
      }
    },
    17648: (e) => {
      'use strict'
      var t = 'Function.prototype.bind called on incompatible ',
        i = Array.prototype.slice,
        n = Object.prototype.toString,
        s = '[object Function]'
      e.exports = function (e) {
        var r = this
        if ('function' != typeof r || n.call(r) !== s)
          throw new TypeError(t + r)
        for (
          var o,
            a = i.call(arguments, 1),
            l = function () {
              if (this instanceof o) {
                var t = r.apply(this, a.concat(i.call(arguments)))
                return Object(t) === t ? t : this
              }
              return r.apply(e, a.concat(i.call(arguments)))
            },
            c = Math.max(0, r.length - a.length),
            h = [],
            d = 0;
          d < c;
          d++
        )
          h.push('$' + d)
        if (
          ((o = Function(
            'binder',
            'return function (' +
              h.join(',') +
              '){ return binder.apply(this,arguments); }'
          )(l)),
          r.prototype)
        ) {
          var u = function () {}
          ;(u.prototype = r.prototype),
            (o.prototype = new u()),
            (u.prototype = null)
        }
        return o
      }
    },
    58612: (e, t, i) => {
      'use strict'
      var n = i(17648)
      e.exports = Function.prototype.bind || n
    },
    40210: (e, t, i) => {
      'use strict'
      var n,
        s = SyntaxError,
        r = Function,
        o = TypeError,
        a = function (e) {
          try {
            return Function('"use strict"; return (' + e + ').constructor;')()
          } catch (e) {}
        },
        l = Object.getOwnPropertyDescriptor
      if (l)
        try {
          l({}, '')
        } catch (e) {
          l = null
        }
      var c = function () {
          throw new o()
        },
        h = l
          ? (function () {
              try {
                return c
              } catch (e) {
                try {
                  return l(arguments, 'callee').get
                } catch (e) {
                  return c
                }
              }
            })()
          : c,
        d = i(41405)(),
        u =
          Object.getPrototypeOf ||
          function (e) {
            return e.__proto__
          },
        p = a('async function* () {}'),
        m = p ? p.prototype : n,
        g = m ? m.prototype : n,
        f = 'undefined' == typeof Uint8Array ? n : u(Uint8Array),
        v = {
          '%AggregateError%':
            'undefined' == typeof AggregateError ? n : AggregateError,
          '%Array%': Array,
          '%ArrayBuffer%': 'undefined' == typeof ArrayBuffer ? n : ArrayBuffer,
          '%ArrayIteratorPrototype%': d ? u([][Symbol.iterator]()) : n,
          '%AsyncFromSyncIteratorPrototype%': n,
          '%AsyncFunction%': a('async function () {}'),
          '%AsyncGenerator%': m,
          '%AsyncGeneratorFunction%': p,
          '%AsyncIteratorPrototype%': g ? u(g) : n,
          '%Atomics%': 'undefined' == typeof Atomics ? n : Atomics,
          '%BigInt%': 'undefined' == typeof BigInt ? n : BigInt,
          '%Boolean%': Boolean,
          '%DataView%': 'undefined' == typeof DataView ? n : DataView,
          '%Date%': Date,
          '%decodeURI%': decodeURI,
          '%decodeURIComponent%': decodeURIComponent,
          '%encodeURI%': encodeURI,
          '%encodeURIComponent%': encodeURIComponent,
          '%Error%': Error,
          '%eval%': eval,
          '%EvalError%': EvalError,
          '%Float32Array%':
            'undefined' == typeof Float32Array ? n : Float32Array,
          '%Float64Array%':
            'undefined' == typeof Float64Array ? n : Float64Array,
          '%FinalizationRegistry%':
            'undefined' == typeof FinalizationRegistry
              ? n
              : FinalizationRegistry,
          '%Function%': r,
          '%GeneratorFunction%': a('function* () {}'),
          '%Int8Array%': 'undefined' == typeof Int8Array ? n : Int8Array,
          '%Int16Array%': 'undefined' == typeof Int16Array ? n : Int16Array,
          '%Int32Array%': 'undefined' == typeof Int32Array ? n : Int32Array,
          '%isFinite%': isFinite,
          '%isNaN%': isNaN,
          '%IteratorPrototype%': d ? u(u([][Symbol.iterator]())) : n,
          '%JSON%': 'object' == typeof JSON ? JSON : n,
          '%Map%': 'undefined' == typeof Map ? n : Map,
          '%MapIteratorPrototype%':
            'undefined' != typeof Map && d
              ? u(new Map()[Symbol.iterator]())
              : n,
          '%Math%': Math,
          '%Number%': Number,
          '%Object%': Object,
          '%parseFloat%': parseFloat,
          '%parseInt%': parseInt,
          '%Promise%': 'undefined' == typeof Promise ? n : Promise,
          '%Proxy%': 'undefined' == typeof Proxy ? n : Proxy,
          '%RangeError%': RangeError,
          '%ReferenceError%': ReferenceError,
          '%Reflect%': 'undefined' == typeof Reflect ? n : Reflect,
          '%RegExp%': RegExp,
          '%Set%': 'undefined' == typeof Set ? n : Set,
          '%SetIteratorPrototype%':
            'undefined' != typeof Set && d
              ? u(new Set()[Symbol.iterator]())
              : n,
          '%SharedArrayBuffer%':
            'undefined' == typeof SharedArrayBuffer ? n : SharedArrayBuffer,
          '%String%': String,
          '%StringIteratorPrototype%': d ? u(''[Symbol.iterator]()) : n,
          '%Symbol%': d ? Symbol : n,
          '%SyntaxError%': s,
          '%ThrowTypeError%': h,
          '%TypedArray%': f,
          '%TypeError%': o,
          '%Uint8Array%': 'undefined' == typeof Uint8Array ? n : Uint8Array,
          '%Uint8ClampedArray%':
            'undefined' == typeof Uint8ClampedArray ? n : Uint8ClampedArray,
          '%Uint16Array%': 'undefined' == typeof Uint16Array ? n : Uint16Array,
          '%Uint32Array%': 'undefined' == typeof Uint32Array ? n : Uint32Array,
          '%URIError%': URIError,
          '%WeakMap%': 'undefined' == typeof WeakMap ? n : WeakMap,
          '%WeakRef%': 'undefined' == typeof WeakRef ? n : WeakRef,
          '%WeakSet%': 'undefined' == typeof WeakSet ? n : WeakSet
        },
        y = {
          '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
          '%ArrayPrototype%': ['Array', 'prototype'],
          '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
          '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
          '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
          '%ArrayProto_values%': ['Array', 'prototype', 'values'],
          '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
          '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
          '%AsyncGeneratorPrototype%': [
            'AsyncGeneratorFunction',
            'prototype',
            'prototype'
          ],
          '%BooleanPrototype%': ['Boolean', 'prototype'],
          '%DataViewPrototype%': ['DataView', 'prototype'],
          '%DatePrototype%': ['Date', 'prototype'],
          '%ErrorPrototype%': ['Error', 'prototype'],
          '%EvalErrorPrototype%': ['EvalError', 'prototype'],
          '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
          '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
          '%FunctionPrototype%': ['Function', 'prototype'],
          '%Generator%': ['GeneratorFunction', 'prototype'],
          '%GeneratorPrototype%': [
            'GeneratorFunction',
            'prototype',
            'prototype'
          ],
          '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
          '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
          '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
          '%JSONParse%': ['JSON', 'parse'],
          '%JSONStringify%': ['JSON', 'stringify'],
          '%MapPrototype%': ['Map', 'prototype'],
          '%NumberPrototype%': ['Number', 'prototype'],
          '%ObjectPrototype%': ['Object', 'prototype'],
          '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
          '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
          '%PromisePrototype%': ['Promise', 'prototype'],
          '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
          '%Promise_all%': ['Promise', 'all'],
          '%Promise_reject%': ['Promise', 'reject'],
          '%Promise_resolve%': ['Promise', 'resolve'],
          '%RangeErrorPrototype%': ['RangeError', 'prototype'],
          '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
          '%RegExpPrototype%': ['RegExp', 'prototype'],
          '%SetPrototype%': ['Set', 'prototype'],
          '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
          '%StringPrototype%': ['String', 'prototype'],
          '%SymbolPrototype%': ['Symbol', 'prototype'],
          '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
          '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
          '%TypeErrorPrototype%': ['TypeError', 'prototype'],
          '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
          '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
          '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
          '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
          '%URIErrorPrototype%': ['URIError', 'prototype'],
          '%WeakMapPrototype%': ['WeakMap', 'prototype'],
          '%WeakSetPrototype%': ['WeakSet', 'prototype']
        },
        b = i(58612),
        S = i(17642),
        E = b.call(Function.call, Array.prototype.concat),
        T = b.call(Function.apply, Array.prototype.splice),
        w = b.call(Function.call, String.prototype.replace),
        _ = b.call(Function.call, String.prototype.slice),
        M =
          /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,
        x = /\\(\\)?/g,
        A = function (e) {
          var t = _(e, 0, 1),
            i = _(e, -1)
          if ('%' === t && '%' !== i)
            throw new s('invalid intrinsic syntax, expected closing `%`')
          if ('%' === i && '%' !== t)
            throw new s('invalid intrinsic syntax, expected opening `%`')
          var n = []
          return (
            w(e, M, function (e, t, i, s) {
              n[n.length] = i ? w(s, x, '$1') : t || e
            }),
            n
          )
        },
        O = function (e, t) {
          var i,
            n = e
          if ((S(y, n) && (n = '%' + (i = y[n])[0] + '%'), S(v, n))) {
            var r = v[n]
            if (void 0 === r && !t)
              throw new o(
                'intrinsic ' +
                  e +
                  ' exists, but is not available. Please file an issue!'
              )
            return { alias: i, name: n, value: r }
          }
          throw new s('intrinsic ' + e + ' does not exist!')
        }
      e.exports = function (e, t) {
        if ('string' != typeof e || 0 === e.length)
          throw new o('intrinsic name must be a non-empty string')
        if (arguments.length > 1 && 'boolean' != typeof t)
          throw new o('"allowMissing" argument must be a boolean')
        var i = A(e),
          n = i.length > 0 ? i[0] : '',
          r = O('%' + n + '%', t),
          a = r.name,
          c = r.value,
          h = !1,
          d = r.alias
        d && ((n = d[0]), T(i, E([0, 1], d)))
        for (var u = 1, p = !0; u < i.length; u += 1) {
          var m = i[u],
            g = _(m, 0, 1),
            f = _(m, -1)
          if (
            ('"' === g ||
              "'" === g ||
              '`' === g ||
              '"' === f ||
              "'" === f ||
              '`' === f) &&
            g !== f
          )
            throw new s('property names with quotes must have matching quotes')
          if (
            (('constructor' !== m && p) || (h = !0),
            S(v, (a = '%' + (n += '.' + m) + '%')))
          )
            c = v[a]
          else if (null != c) {
            if (!(m in c)) {
              if (!t)
                throw new o(
                  'base intrinsic for ' +
                    e +
                    ' exists, but the property is not available.'
                )
              return
            }
            if (l && u + 1 >= i.length) {
              var y = l(c, m)
              c =
                (p = !!y) && 'get' in y && !('originalValue' in y.get)
                  ? y.get
                  : c[m]
            } else (p = S(c, m)), (c = c[m])
            p && !h && (v[a] = c)
          }
        }
        return c
      }
    },
    50972: (e, t, i) => {
      'use strict'
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (t.default = function (e) {
          var t = e.prototype.toJSON
          'function' == typeof t || (0, n.default)(0),
            (e.prototype.inspect = t),
            s.default && (e.prototype[s.default] = t)
        })
      var n = r(i(7706)),
        s = r(i(18554))
      function r(e) {
        return e && e.__esModule ? e : { default: e }
      }
    },
    8002: (e, t, i) => {
      'use strict'
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (t.default = function (e) {
          return o(e, [])
        })
      var n,
        s = (n = i(18554)) && n.__esModule ? n : { default: n }
      function r(e) {
        return (r =
          'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
            ? function (e) {
                return typeof e
              }
            : function (e) {
                return e &&
                  'function' == typeof Symbol &&
                  e.constructor === Symbol &&
                  e !== Symbol.prototype
                  ? 'symbol'
                  : typeof e
              })(e)
      }
      function o(e, t) {
        switch (r(e)) {
          case 'string':
            return JSON.stringify(e)
          case 'function':
            return e.name ? '[function '.concat(e.name, ']') : '[function]'
          case 'object':
            return null === e
              ? 'null'
              : (function (e, t) {
                  if (-1 !== t.indexOf(e)) return '[Circular]'
                  var i = [].concat(t, [e]),
                    n = (function (e) {
                      var t = e[String(s.default)]
                      if ('function' == typeof t) return t
                      if ('function' == typeof e.inspect) return e.inspect
                    })(e)
                  if (void 0 !== n) {
                    var r = n.call(e)
                    if (r !== e) return 'string' == typeof r ? r : o(r, i)
                  } else if (Array.isArray(e))
                    return (function (e, t) {
                      if (0 === e.length) return '[]'
                      if (t.length > 2) return '[Array]'
                      for (
                        var i = Math.min(10, e.length),
                          n = e.length - i,
                          s = [],
                          r = 0;
                        r < i;
                        ++r
                      )
                        s.push(o(e[r], t))
                      1 === n
                        ? s.push('... 1 more item')
                        : n > 1 && s.push('... '.concat(n, ' more items'))
                      return '[' + s.join(', ') + ']'
                    })(e, i)
                  return (function (e, t) {
                    var i = Object.keys(e)
                    if (0 === i.length) return '{}'
                    if (t.length > 2)
                      return (
                        '[' +
                        (function (e) {
                          var t = Object.prototype.toString
                            .call(e)
                            .replace(/^\[object /, '')
                            .replace(/]$/, '')
                          if (
                            'Object' === t &&
                            'function' == typeof e.constructor
                          ) {
                            var i = e.constructor.name
                            if ('string' == typeof i && '' !== i) return i
                          }
                          return t
                        })(e) +
                        ']'
                      )
                    return (
                      '{ ' +
                      i
                        .map(function (i) {
                          return i + ': ' + o(e[i], t)
                        })
                        .join(', ') +
                      ' }'
                    )
                  })(e, i)
                })(e, t)
          default:
            return String(e)
        }
      }
    },

    7706: (e, t) => {
      'use strict'
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (t.default = function (e, t) {
          if (!Boolean(e))
            throw new Error(null != t ? t : 'Unexpected invariant triggered.')
        })
    },
    18554: (e, t) => {
      'use strict'
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (t.default = void 0)
      var i =
        'function' == typeof Symbol && 'function' == typeof Symbol.for
          ? Symbol.for('nodejs.util.inspect.custom')
          : void 0
      t.default = i
    },
    91807: (e, t, i) => {
      'use strict'
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (t.isNode = function (e) {
          return null != e && 'string' == typeof e.kind
        }),
        (t.Token = t.Location = void 0)
      var n,
        s = (n = i(50972)) && n.__esModule ? n : { default: n }
      var r = (function () {
        function e(e, t, i) {
          ;(this.start = e.start),
            (this.end = t.end),
            (this.startToken = e),
            (this.endToken = t),
            (this.source = i)
        }
        return (
          (e.prototype.toJSON = function () {
            return { start: this.start, end: this.end }
          }),
          e
        )
      })()
      ;(t.Location = r), (0, s.default)(r)
      var o = (function () {
        function e(e, t, i, n, s, r, o) {
          ;(this.kind = e),
            (this.start = t),
            (this.end = i),
            (this.line = n),
            (this.column = s),
            (this.value = o),
            (this.prev = r),
            (this.next = null)
        }
        return (
          (e.prototype.toJSON = function () {
            return {
              kind: this.kind,
              value: this.value,
              line: this.line,
              column: this.column
            }
          }),
          e
        )
      })()
      ;(t.Token = o), (0, s.default)(o)
    },

    7420: (e, t, i) => {
      'use strict'
      function n(e) {
        var t = e.split(/\r\n|[\n\r]/g),
          i = (function (e) {
            for (
              var t, i = !0, n = !0, s = 0, r = null, o = 0;
              o < e.length;
              ++o
            )
              switch (e.charCodeAt(o)) {
                case 13:
                  10 === e.charCodeAt(o + 1) && ++o
                case 10:
                  ;(i = !1), (n = !0), (s = 0)
                  break
                case 9:
                case 32:
                  ++s
                  break
                default:
                  n && !i && (null === r || s < r) && (r = s), (n = !1)
              }
            return null !== (t = r) && void 0 !== t ? t : 0
          })(e)
        if (0 !== i) for (var n = 1; n < t.length; n++) t[n] = t[n].slice(i)
        for (var r = 0; r < t.length && s(t[r]); ) ++r
        for (var o = t.length; o > r && s(t[o - 1]); ) --o
        return t.slice(r, o).join('\n')
      }
      function s(e) {
        for (var t = 0; t < e.length; ++t)
          if (' ' !== e[t] && '\t' !== e[t]) return !1
        return !0
      }
      function r(e) {
        var t =
            arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : '',
          i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
          n = -1 === e.indexOf('\n'),
          s = ' ' === e[0] || '\t' === e[0],
          r = '"' === e[e.length - 1],
          o = '\\' === e[e.length - 1],
          a = !n || r || o || i,
          l = ''
        return (
          !a || (n && s) || (l += '\n' + t),
          (l += t ? e.replace(/\n/g, '\n' + t) : e),
          a && (l += '\n'),
          '"""' + l.replace(/"""/g, '\\"""') + '"""'
        )
      }
      i.d(t, { W7: () => n, LZ: () => r })
    },
    90778: (e, t, i) => {
      'use strict'
      i.d(t, { S: () => r })
      var n = i(27636),
        s = i(7420)
      function r(e) {
        return (0, n.Vn)(e, { leave: o })
      }
      var o = {
        Name: function (e) {
          return e.value
        },
        Variable: function (e) {
          return '$' + e.name
        },
        Document: function (e) {
          return l(e.definitions, '\n\n') + '\n'
        },
        OperationDefinition: function (e) {
          var t = e.operation,
            i = e.name,
            n = h('(', l(e.variableDefinitions, ', '), ')'),
            s = l(e.directives, ' '),
            r = e.selectionSet
          return i || s || n || 'query' !== t ? l([t, l([i, n]), s, r], ' ') : r
        },
        VariableDefinition: function (e) {
          var t = e.variable,
            i = e.type,
            n = e.defaultValue,
            s = e.directives
          return t + ': ' + i + h(' = ', n) + h(' ', l(s, ' '))
        },
        SelectionSet: function (e) {
          return c(e.selections)
        },
        Field: function (e) {
          var t = e.alias,
            i = e.name,
            n = e.arguments,
            s = e.directives,
            r = e.selectionSet,
            o = h('', t, ': ') + i,
            a = o + h('(', l(n, ', '), ')')
          return (
            a.length > 80 && (a = o + h('(\n', d(l(n, '\n')), '\n)')),
            l([a, l(s, ' '), r], ' ')
          )
        },
        Argument: function (e) {
          return e.name + ': ' + e.value
        },
        FragmentSpread: function (e) {
          return '...' + e.name + h(' ', l(e.directives, ' '))
        },
        InlineFragment: function (e) {
          var t = e.typeCondition,
            i = e.directives,
            n = e.selectionSet
          return l(['...', h('on ', t), l(i, ' '), n], ' ')
        },
        FragmentDefinition: function (e) {
          var t = e.name,
            i = e.typeCondition,
            n = e.variableDefinitions,
            s = e.directives,
            r = e.selectionSet
          return (
            'fragment '.concat(t).concat(h('(', l(n, ', '), ')'), ' ') +
            'on '.concat(i, ' ').concat(h('', l(s, ' '), ' ')) +
            r
          )
        },
        IntValue: function (e) {
          return e.value
        },
        FloatValue: function (e) {
          return e.value
        },
        StringValue: function (e, t) {
          var i = e.value
          return e.block
            ? (0, s.LZ)(i, 'description' === t ? '' : '  ')
            : JSON.stringify(i)
        },
        BooleanValue: function (e) {
          return e.value ? 'true' : 'false'
        },
        NullValue: function () {
          return 'null'
        },
        EnumValue: function (e) {
          return e.value
        },
        ListValue: function (e) {
          return '[' + l(e.values, ', ') + ']'
        },
        ObjectValue: function (e) {
          return '{' + l(e.fields, ', ') + '}'
        },
        ObjectField: function (e) {
          return e.name + ': ' + e.value
        },
        Directive: function (e) {
          return '@' + e.name + h('(', l(e.arguments, ', '), ')')
        },
        NamedType: function (e) {
          return e.name
        },
        ListType: function (e) {
          return '[' + e.type + ']'
        },
        NonNullType: function (e) {
          return e.type + '!'
        },
        SchemaDefinition: a(function (e) {
          var t = e.directives,
            i = e.operationTypes
          return l(['schema', l(t, ' '), c(i)], ' ')
        }),
        OperationTypeDefinition: function (e) {
          return e.operation + ': ' + e.type
        },
        ScalarTypeDefinition: a(function (e) {
          return l(['scalar', e.name, l(e.directives, ' ')], ' ')
        }),
        ObjectTypeDefinition: a(function (e) {
          var t = e.name,
            i = e.interfaces,
            n = e.directives,
            s = e.fields
          return l(
            ['type', t, h('implements ', l(i, ' & ')), l(n, ' '), c(s)],
            ' '
          )
        }),
        FieldDefinition: a(function (e) {
          var t = e.name,
            i = e.arguments,
            n = e.type,
            s = e.directives
          return (
            t +
            (p(i) ? h('(\n', d(l(i, '\n')), '\n)') : h('(', l(i, ', '), ')')) +
            ': ' +
            n +
            h(' ', l(s, ' '))
          )
        }),
        InputValueDefinition: a(function (e) {
          var t = e.name,
            i = e.type,
            n = e.defaultValue,
            s = e.directives
          return l([t + ': ' + i, h('= ', n), l(s, ' ')], ' ')
        }),
        InterfaceTypeDefinition: a(function (e) {
          var t = e.name,
            i = e.interfaces,
            n = e.directives,
            s = e.fields
          return l(
            ['interface', t, h('implements ', l(i, ' & ')), l(n, ' '), c(s)],
            ' '
          )
        }),
        UnionTypeDefinition: a(function (e) {
          var t = e.name,
            i = e.directives,
            n = e.types
          return l(
            [
              'union',
              t,
              l(i, ' '),
              n && 0 !== n.length ? '= ' + l(n, ' | ') : ''
            ],
            ' '
          )
        }),
        EnumTypeDefinition: a(function (e) {
          var t = e.name,
            i = e.directives,
            n = e.values
          return l(['enum', t, l(i, ' '), c(n)], ' ')
        }),
        EnumValueDefinition: a(function (e) {
          return l([e.name, l(e.directives, ' ')], ' ')
        }),
        InputObjectTypeDefinition: a(function (e) {
          var t = e.name,
            i = e.directives,
            n = e.fields
          return l(['input', t, l(i, ' '), c(n)], ' ')
        }),
        DirectiveDefinition: a(function (e) {
          var t = e.name,
            i = e.arguments,
            n = e.repeatable,
            s = e.locations
          return (
            'directive @' +
            t +
            (p(i) ? h('(\n', d(l(i, '\n')), '\n)') : h('(', l(i, ', '), ')')) +
            (n ? ' repeatable' : '') +
            ' on ' +
            l(s, ' | ')
          )
        }),
        SchemaExtension: function (e) {
          var t = e.directives,
            i = e.operationTypes
          return l(['extend schema', l(t, ' '), c(i)], ' ')
        },
        ScalarTypeExtension: function (e) {
          return l(['extend scalar', e.name, l(e.directives, ' ')], ' ')
        },
        ObjectTypeExtension: function (e) {
          var t = e.name,
            i = e.interfaces,
            n = e.directives,
            s = e.fields
          return l(
            ['extend type', t, h('implements ', l(i, ' & ')), l(n, ' '), c(s)],
            ' '
          )
        },
        InterfaceTypeExtension: function (e) {
          var t = e.name,
            i = e.interfaces,
            n = e.directives,
            s = e.fields
          return l(
            [
              'extend interface',
              t,
              h('implements ', l(i, ' & ')),
              l(n, ' '),
              c(s)
            ],
            ' '
          )
        },
        UnionTypeExtension: function (e) {
          var t = e.name,
            i = e.directives,
            n = e.types
          return l(
            [
              'extend union',
              t,
              l(i, ' '),
              n && 0 !== n.length ? '= ' + l(n, ' | ') : ''
            ],
            ' '
          )
        },
        EnumTypeExtension: function (e) {
          var t = e.name,
            i = e.directives,
            n = e.values
          return l(['extend enum', t, l(i, ' '), c(n)], ' ')
        },
        InputObjectTypeExtension: function (e) {
          var t = e.name,
            i = e.directives,
            n = e.fields
          return l(['extend input', t, l(i, ' '), c(n)], ' ')
        }
      }
      function a(e) {
        return function (t) {
          return l([t.description, e(t)], '\n')
        }
      }
      function l(e) {
        var t,
          i =
            arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ''
        return null !==
          (t =
            null == e
              ? void 0
              : e
                  .filter(function (e) {
                    return e
                  })
                  .join(i)) && void 0 !== t
          ? t
          : ''
      }
      function c(e) {
        return h('{\n', d(l(e, '\n')), '\n}')
      }
      function h(e, t) {
        var i =
          arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ''
        return null != t && '' !== t ? e + t + i : ''
      }
      function d(e) {
        return h('  ', e.replace(/\n/g, '\n  '))
      }
      function u(e) {
        return -1 !== e.indexOf('\n')
      }
      function p(e) {
        return null != e && e.some(u)
      }
    },
    80285: (e, t, i) => {
      'use strict'
      t.Vn = function (e, t) {
        var i =
            arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : o,
          n = void 0,
          c = Array.isArray(e),
          h = [e],
          d = -1,
          u = [],
          p = void 0,
          m = void 0,
          g = void 0,
          f = [],
          v = [],
          y = e
        do {
          var b = ++d === h.length,
            S = b && 0 !== u.length
          if (b) {
            if (
              ((m = 0 === v.length ? void 0 : f[f.length - 1]),
              (p = g),
              (g = v.pop()),
              S)
            ) {
              if (c) p = p.slice()
              else {
                for (var E = {}, T = 0, w = Object.keys(p); T < w.length; T++) {
                  var _ = w[T]
                  E[_] = p[_]
                }
                p = E
              }
              for (var M = 0, x = 0; x < u.length; x++) {
                var A = u[x][0],
                  O = u[x][1]
                c && (A -= M),
                  c && null === O ? (p.splice(A, 1), M++) : (p[A] = O)
              }
            }
            ;(d = n.index),
              (h = n.keys),
              (u = n.edits),
              (c = n.inArray),
              (n = n.prev)
          } else {
            if (((m = g ? (c ? d : h[d]) : void 0), null == (p = g ? g[m] : y)))
              continue
            g && f.push(m)
          }
          var D,
            C = void 0
          if (!Array.isArray(p)) {
            if (!(0, r.isNode)(p))
              throw new Error(
                'Invalid AST Node: '.concat((0, s.default)(p), '.')
              )
            var P = l(t, p.kind, b)
            if (P) {
              if ((C = P.call(t, p, m, g, f, v)) === a) break
              if (!1 === C) {
                if (!b) {
                  f.pop()
                  continue
                }
              } else if (void 0 !== C && (u.push([m, C]), !b)) {
                if (!(0, r.isNode)(C)) {
                  f.pop()
                  continue
                }
                p = C
              }
            }
          }
          if ((void 0 === C && S && u.push([m, p]), b)) f.pop()
          else
            (n = { inArray: c, index: d, keys: h, edits: u, prev: n }),
              (c = Array.isArray(p)),
              (h = c ? p : null !== (D = i[p.kind]) && void 0 !== D ? D : []),
              (d = -1),
              (u = []),
              g && v.push(g),
              (g = p)
        } while (void 0 !== n)
        0 !== u.length && (y = u[u.length - 1][1])
        return y
      }
      var n,
        s = (n = i(8002)) && n.__esModule ? n : { default: n },
        r = i(91807)
      var o = {
        Name: [],
        Document: ['definitions'],
        OperationDefinition: [
          'name',
          'variableDefinitions',
          'directives',
          'selectionSet'
        ],
        VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],
        Variable: ['name'],
        SelectionSet: ['selections'],
        Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
        Argument: ['name', 'value'],
        FragmentSpread: ['name', 'directives'],
        InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
        FragmentDefinition: [
          'name',
          'variableDefinitions',
          'typeCondition',
          'directives',
          'selectionSet'
        ],
        IntValue: [],
        FloatValue: [],
        StringValue: [],
        BooleanValue: [],
        NullValue: [],
        EnumValue: [],
        ListValue: ['values'],
        ObjectValue: ['fields'],
        ObjectField: ['name', 'value'],
        Directive: ['name', 'arguments'],
        NamedType: ['name'],
        ListType: ['type'],
        NonNullType: ['type'],
        SchemaDefinition: ['description', 'directives', 'operationTypes'],
        OperationTypeDefinition: ['type'],
        ScalarTypeDefinition: ['description', 'name', 'directives'],
        ObjectTypeDefinition: [
          'description',
          'name',
          'interfaces',
          'directives',
          'fields'
        ],
        FieldDefinition: [
          'description',
          'name',
          'arguments',
          'type',
          'directives'
        ],
        InputValueDefinition: [
          'description',
          'name',
          'type',
          'defaultValue',
          'directives'
        ],
        InterfaceTypeDefinition: [
          'description',
          'name',
          'interfaces',
          'directives',
          'fields'
        ],
        UnionTypeDefinition: ['description', 'name', 'directives', 'types'],
        EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
        EnumValueDefinition: ['description', 'name', 'directives'],
        InputObjectTypeDefinition: [
          'description',
          'name',
          'directives',
          'fields'
        ],
        DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
        SchemaExtension: ['directives', 'operationTypes'],
        ScalarTypeExtension: ['name', 'directives'],
        ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
        InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
        UnionTypeExtension: ['name', 'directives', 'types'],
        EnumTypeExtension: ['name', 'directives', 'values'],
        InputObjectTypeExtension: ['name', 'directives', 'fields']
      }
      var a = Object.freeze({})
      function l(e, t, i) {
        var n = e[t]
        if (n) {
          if (!i && 'function' == typeof n) return n
          var s = i ? n.leave : n.enter
          if ('function' == typeof s) return s
        } else {
          var r = i ? e.leave : e.enter
          if (r) {
            if ('function' == typeof r) return r
            var o = r[t]
            if ('function' == typeof o) return o
          }
        }
      }
    },

    41405: (e, t, i) => {
      'use strict'
      var n = i.g.Symbol,
        s = i(55419)
      e.exports = function () {
        return (
          'function' == typeof n &&
          'function' == typeof Symbol &&
          'symbol' == typeof n('foo') &&
          'symbol' == typeof Symbol('bar') &&
          s()
        )
      }
    },
    55419: (e) => {
      'use strict'
      e.exports = function () {
        if (
          'function' != typeof Symbol ||
          'function' != typeof Object.getOwnPropertySymbols
        )
          return !1
        if ('symbol' == typeof Symbol.iterator) return !0
        var e = {},
          t = Symbol('test'),
          i = Object(t)
        if ('string' == typeof t) return !1
        if ('[object Symbol]' !== Object.prototype.toString.call(t)) return !1
        if ('[object Symbol]' !== Object.prototype.toString.call(i)) return !1
        for (t in ((e[t] = 42), e)) return !1
        if ('function' == typeof Object.keys && 0 !== Object.keys(e).length)
          return !1
        if (
          'function' == typeof Object.getOwnPropertyNames &&
          0 !== Object.getOwnPropertyNames(e).length
        )
          return !1
        var n = Object.getOwnPropertySymbols(e)
        if (1 !== n.length || n[0] !== t) return !1
        if (!Object.prototype.propertyIsEnumerable.call(e, t)) return !1
        if ('function' == typeof Object.getOwnPropertyDescriptor) {
          var s = Object.getOwnPropertyDescriptor(e, t)
          if (42 !== s.value || !0 !== s.enumerable) return !1
        }
        return !0
      }
    },
    17642: (e, t, i) => {
      'use strict'
      var n = i(58612)
      e.exports = n.call(Function.call, Object.prototype.hasOwnProperty)
    },

    95320: (e) => {
      'use strict'
      var t,
        i,
        n = Function.prototype.toString,
        s = 'object' == typeof Reflect && null !== Reflect && Reflect.apply
      if ('function' == typeof s && 'function' == typeof Object.defineProperty)
        try {
          ;(t = Object.defineProperty({}, 'length', {
            get: function () {
              throw i
            }
          })),
            (i = {}),
            s(
              function () {
                throw 42
              },
              null,
              t
            )
        } catch (e) {
          e !== i && (s = null)
        }
      else s = null
      var r = /^\s*class\b/,
        o = function (e) {
          try {
            var t = n.call(e)
            return r.test(t)
          } catch (e) {
            return !1
          }
        },
        a = Object.prototype.toString,
        l = 'function' == typeof Symbol && 'symbol' == typeof Symbol.toStringTag
      e.exports = s
        ? function (e) {
            if (!e) return !1
            if ('function' != typeof e && 'object' != typeof e) return !1
            if ('function' == typeof e && !e.prototype) return !0
            try {
              s(e, null, t)
            } catch (e) {
              if (e !== i) return !1
            }
            return !o(e)
          }
        : function (e) {
            if (!e) return !1
            if ('function' != typeof e && 'object' != typeof e) return !1
            if ('function' == typeof e && !e.prototype) return !0
            if (l)
              return (function (e) {
                try {
                  return !o(e) && (n.call(e), !0)
                } catch (e) {
                  return !1
                }
              })(e)
            if (o(e)) return !1
            var t = a.call(e)
            return (
              '[object Function]' === t || '[object GeneratorFunction]' === t
            )
          }
    },

    18987: (e, t, i) => {
      'use strict'
      var n
      if (!Object.keys) {
        var s = Object.prototype.hasOwnProperty,
          r = Object.prototype.toString,
          o = i(21414),
          a = Object.prototype.propertyIsEnumerable,
          l = !a.call({ toString: null }, 'toString'),
          c = a.call(function () {}, 'prototype'),
          h = [
            'toString',
            'toLocaleString',
            'valueOf',
            'hasOwnProperty',
            'isPrototypeOf',
            'propertyIsEnumerable',
            'constructor'
          ],
          d = function (e) {
            var t = e.constructor
            return t && t.prototype === e
          },
          u = {
            $applicationCache: !0,
            $console: !0,
            $external: !0,
            $frame: !0,
            $frameElement: !0,
            $frames: !0,
            $innerHeight: !0,
            $innerWidth: !0,
            $onmozfullscreenchange: !0,
            $onmozfullscreenerror: !0,
            $outerHeight: !0,
            $outerWidth: !0,
            $pageXOffset: !0,
            $pageYOffset: !0,
            $parent: !0,
            $scrollLeft: !0,
            $scrollTop: !0,
            $scrollX: !0,
            $scrollY: !0,
            $self: !0,
            $webkitIndexedDB: !0,
            $webkitStorageInfo: !0,
            $window: !0
          },
          p = (function () {
            if ('undefined' == typeof window) return !1
            for (var e in window)
              try {
                if (
                  !u['$' + e] &&
                  s.call(window, e) &&
                  null !== window[e] &&
                  'object' == typeof window[e]
                )
                  try {
                    d(window[e])
                  } catch (e) {
                    return !0
                  }
              } catch (e) {
                return !0
              }
            return !1
          })()
        n = function (e) {
          var t = null !== e && 'object' == typeof e,
            i = '[object Function]' === r.call(e),
            n = o(e),
            a = t && '[object String]' === r.call(e),
            u = []
          if (!t && !i && !n)
            throw new TypeError('Object.keys called on a non-object')
          var m = c && i
          if (a && e.length > 0 && !s.call(e, 0))
            for (var g = 0; g < e.length; ++g) u.push(String(g))
          if (n && e.length > 0)
            for (var f = 0; f < e.length; ++f) u.push(String(f))
          else
            for (var v in e)
              (m && 'prototype' === v) || !s.call(e, v) || u.push(String(v))
          if (l)
            for (
              var y = (function (e) {
                  if ('undefined' == typeof window || !p) return d(e)
                  try {
                    return d(e)
                  } catch (e) {
                    return !1
                  }
                })(e),
                b = 0;
              b < h.length;
              ++b
            )
              (y && 'constructor' === h[b]) || !s.call(e, h[b]) || u.push(h[b])
          return u
        }
      }
      e.exports = n
    },
    82215: (e, t, i) => {
      'use strict'
      var n = Array.prototype.slice,
        s = i(21414),
        r = Object.keys,
        o = r
          ? function (e) {
              return r(e)
            }
          : i(18987),
        a = Object.keys
      ;(o.shim = function () {
        Object.keys
          ? (function () {
              var e = Object.keys(arguments)
              return e && e.length === arguments.length
            })(1, 2) ||
            (Object.keys = function (e) {
              return s(e) ? a(n.call(e)) : a(e)
            })
          : (Object.keys = o)
        return Object.keys || o
      }),
        (e.exports = o)
    },
    21414: (e) => {
      'use strict'
      var t = Object.prototype.toString
      e.exports = function (e) {
        var i = t.call(e),
          n = '[object Arguments]' === i
        return (
          n ||
            (n =
              '[object Array]' !== i &&
              null !== e &&
              'object' == typeof e &&
              'number' == typeof e.length &&
              e.length >= 0 &&
              '[object Function]' === t.call(e.callee)),
          n
        )
      }
    },
    17141: (e, t, i) => {
      var n
      !(function (s, r) {
        var o = {}
        function a(e) {
          return function () {
            var t = { method: e },
              i = Array.prototype.slice.call(arguments)
            ;/^get/.test(e)
              ? (o.assert(i.length > 0, 'Get methods require a callback.'),
                i.unshift(t))
              : (/^set/.test(e) &&
                  (o.assert(0 !== i.length, 'Set methods require a value.'),
                  (t.value = i[0])),
                (i = [t])),
              this.send.apply(this, i)
          }
        }
        ;(o.DEBUG = !1),
          (o.VERSION = '0.0.11'),
          (o.CONTEXT = 'player.js'),
          (o.POST_MESSAGE = !!s.postMessage),
          (o.origin = function (e) {
            return (
              '//' === e.substr(0, 2) && (e = s.location.protocol + e),
              e.split('/').slice(0, 3).join('/')
            )
          }),
          (o.addEvent = function (e, t, i) {
            e &&
              (e.addEventListener
                ? e.addEventListener(t, i, !1)
                : e.attachEvent
                ? e.attachEvent('on' + t, i)
                : (e['on' + t] = i))
          }),
          (o.log = function () {
            ;(o.log.history = o.log.history || []),
              o.log.history.push(arguments),
              s.console &&
                o.DEBUG &&
                s.console.log(Array.prototype.slice.call(arguments))
          }),
          (o.isString = function (e) {
            return '[object String]' === Object.prototype.toString.call(e)
          }),
          (o.isObject = function (e) {
            return '[object Object]' === Object.prototype.toString.call(e)
          }),
          (o.isArray = function (e) {
            return '[object Array]' === Object.prototype.toString.call(e)
          }),
          (o.isNone = function (e) {
            return null == e
          }),
          (o.has = function (e, t) {
            return Object.prototype.hasOwnProperty.call(e, t)
          }),
          (o.indexOf = function (e, t) {
            if (null == e) return -1
            var i = 0,
              n = e.length
            if (
              Array.prototype.IndexOf &&
              e.indexOf === Array.prototype.IndexOf
            )
              return e.indexOf(t)
            for (; i < n; i++) if (e[i] === t) return i
            return -1
          }),
          (o.assert = function (e, t) {
            if (!e) throw t || 'Player.js Assert Failed'
          }),
          (o.Keeper = function () {
            this.init()
          }),
          (o.Keeper.prototype.init = function () {
            this.data = {}
          }),
          (o.Keeper.prototype.getUUID = function () {
            return 'listener-xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(
              /[xy]/g,
              function (e) {
                var t = (16 * Math.random()) | 0
                return ('x' === e ? t : (3 & t) | 8).toString(16)
              }
            )
          }),
          (o.Keeper.prototype.has = function (e, t) {
            if (!this.data.hasOwnProperty(e)) return !1
            if (o.isNone(t)) return !0
            for (var i = this.data[e], n = 0; n < i.length; n++)
              if (i[n].id === t) return !0
            return !1
          }),
          (o.Keeper.prototype.add = function (e, t, i, n, s) {
            var r = { id: e, event: t, cb: i, ctx: n, one: s }
            this.has(t) ? this.data[t].push(r) : (this.data[t] = [r])
          }),
          (o.Keeper.prototype.execute = function (e, t, i, n) {
            if (!this.has(e, t)) return !1
            for (var s = [], r = [], a = 0; a < this.data[e].length; a++) {
              var l = this.data[e][a]
              o.isNone(t) || (!o.isNone(t) && l.id === t)
                ? (r.push({ cb: l.cb, ctx: l.ctx ? l.ctx : n, data: i }),
                  !1 === l.one && s.push(l))
                : s.push(l)
            }
            0 === s.length ? delete this.data[e] : (this.data[e] = s)
            for (var c = 0; c < r.length; c++) {
              var h = r[c]
              h.cb.call(h.ctx, h.data)
            }
          }),
          (o.Keeper.prototype.on = function (e, t, i, n) {
            this.add(e, t, i, n, !1)
          }),
          (o.Keeper.prototype.one = function (e, t, i, n) {
            this.add(e, t, i, n, !0)
          }),
          (o.Keeper.prototype.off = function (e, t) {
            var i = []
            if (!this.data.hasOwnProperty(e)) return i
            for (var n = [], s = 0; s < this.data[e].length; s++) {
              var r = this.data[e][s]
              o.isNone(t) || r.cb === t
                ? o.isNone(r.id) || i.push(r.id)
                : n.push(r)
            }
            return 0 === n.length ? delete this.data[e] : (this.data[e] = n), i
          }),
          (o.Player = function (e, t) {
            if (!(this instanceof o.Player)) return new o.Player(e, t)
            this.init(e, t)
          }),
          (o.EVENTS = {
            READY: 'ready',
            PLAY: 'play',
            PAUSE: 'pause',
            ENDED: 'ended',
            TIMEUPDATE: 'timeupdate',
            PROGRESS: 'progress',
            ERROR: 'error'
          }),
          (o.EVENTS.all = function () {
            var e = []
            for (var t in o.EVENTS)
              o.has(o.EVENTS, t) &&
                o.isString(o.EVENTS[t]) &&
                e.push(o.EVENTS[t])
            return e
          }),
          (o.METHODS = {
            PLAY: 'play',
            PAUSE: 'pause',
            GETPAUSED: 'getPaused',
            MUTE: 'mute',
            UNMUTE: 'unmute',
            GETMUTED: 'getMuted',
            SETVOLUME: 'setVolume',
            GETVOLUME: 'getVolume',
            GETDURATION: 'getDuration',
            SETCURRENTTIME: 'setCurrentTime',
            GETCURRENTTIME: 'getCurrentTime',
            SETLOOP: 'setLoop',
            GETLOOP: 'getLoop',
            REMOVEEVENTLISTENER: 'removeEventListener',
            ADDEVENTLISTENER: 'addEventListener'
          }),
          (o.METHODS.all = function () {
            var e = []
            for (var t in o.METHODS)
              o.has(o.METHODS, t) &&
                o.isString(o.METHODS[t]) &&
                e.push(o.METHODS[t])
            return e
          }),
          (o.READIED = []),
          (o.Player.prototype.init = function (e, t) {
            var i = this
            o.isString(e) && (e = r.getElementById(e)),
              (this.elem = e),
              o.assert(
                'IFRAME' === e.nodeName,
                'playerjs.Player constructor requires an Iframe, got "' +
                  e.nodeName +
                  '"'
              ),
              o.assert(
                e.src,
                "playerjs.Player constructor requires a Iframe with a 'src' attribute."
              ),
              (this.origin = o.origin(e.src)),
              (this.keeper = new o.Keeper()),
              (this.isReady = !1),
              (this.queue = []),
              (this.events = o.EVENTS.all()),
              (this.methods = o.METHODS.all()),
              o.POST_MESSAGE
                ? o.addEvent(s, 'message', function (e) {
                    i.receive(e)
                  })
                : o.log('Post Message is not Available.'),
              o.indexOf(o.READIED, e.src) > -1
                ? (i.loaded = !0)
                : (this.elem.onload = function () {
                    i.loaded = !0
                  })
          }),
          (o.Player.prototype.send = function (e, t, i) {
            if (((e.context = o.CONTEXT), (e.version = o.VERSION), t)) {
              var n = this.keeper.getUUID()
              ;(e.listener = n), this.keeper.one(n, e.method, t, i)
            }
            return this.isReady || 'ready' === e.value
              ? (o.log('Player.send', e, this.origin),
                !0 === this.loaded &&
                  this.elem.contentWindow.postMessage(
                    JSON.stringify(e),
                    this.origin
                  ),
                !0)
              : (o.log('Player.queue', e), this.queue.push(e), !1)
          }),
          (o.Player.prototype.receive = function (e) {
            if ((o.log('Player.receive', e), e.origin !== this.origin))
              return !1
            var t
            try {
              t = JSON.parse(e.data)
            } catch (e) {
              return !1
            }
            if (t.context !== o.CONTEXT) return !1
            'ready' === t.event &&
              t.value &&
              t.value.src === this.elem.src &&
              this.ready(t),
              this.keeper.has(t.event, t.listener) &&
                this.keeper.execute(t.event, t.listener, t.value, this)
          }),
          (o.Player.prototype.ready = function (e) {
            if (!0 === this.isReady) return !1
            e.value.events && (this.events = e.value.events),
              e.value.methods && (this.methods = e.value.methods),
              (this.isReady = !0),
              (this.loaded = !0)
            for (var t = 0; t < this.queue.length; t++) {
              var i = this.queue[t]
              o.log('Player.dequeue', i),
                'ready' === e.event &&
                  this.keeper.execute(i.event, i.listener, !0, this),
                this.send(i)
            }
            this.queue = []
          }),
          (o.Player.prototype.on = function (e, t, i) {
            var n = this.keeper.getUUID()
            return (
              'ready' === e
                ? this.keeper.one(n, e, t, i)
                : this.keeper.on(n, e, t, i),
              this.send({
                method: 'addEventListener',
                value: e,
                listener: n
              }),
              !0
            )
          }),
          (o.Player.prototype.off = function (e, t) {
            var i = this.keeper.off(e, t)
            if ((o.log('Player.off', i), i.length > 0))
              for (var n in i)
                return (
                  this.send({
                    method: 'removeEventListener',
                    value: e,
                    listener: i[n]
                  }),
                  !0
                )
            return !1
          }),
          (o.Player.prototype.supports = function (e, t) {
            o.assert(
              o.indexOf(['method', 'event'], e) > -1,
              'evtOrMethod needs to be either "event" or "method" got ' + e
            ),
              (t = o.isArray(t) ? t : [t])
            for (
              var i = 'event' === e ? this.events : this.methods, n = 0;
              n < t.length;
              n++
            )
              if (-1 === o.indexOf(i, t[n])) return !1
            return !0
          })
        for (var l = 0, c = o.METHODS.all().length; l < c; l++) {
          var h = o.METHODS.all()[l]
          o.Player.prototype.hasOwnProperty(h) || (o.Player.prototype[h] = a(h))
        }
        o.addEvent(s, 'message', function (e) {
          var t
          try {
            t = JSON.parse(e.data)
          } catch (e) {
            return !1
          }
          if (t.context !== o.CONTEXT) return !1
          'ready' === t.event &&
            t.value &&
            t.value.src &&
            o.READIED.push(t.value.src)
        }),
          (o.Receiver = function (e, t) {
            this.init(e, t)
          }),
          (o.Receiver.prototype.init = function (e, t) {
            var i = this
            ;(this.isReady = !1),
              (this.origin = o.origin(r.referrer)),
              (this.methods = {}),
              (this.supported = {
                events: e || o.EVENTS.all(),
                methods: t || o.METHODS.all()
              }),
              (this.eventListeners = {}),
              (this.reject = !(s.self !== s.top && o.POST_MESSAGE)),
              this.reject ||
                o.addEvent(s, 'message', function (e) {
                  i.receive(e)
                })
          }),
          (o.Receiver.prototype.receive = function (e) {
            if (e.origin !== this.origin) return !1
            var t = {}
            if (o.isObject(e.data)) t = e.data
            else
              try {
                t = s.JSON.parse(e.data)
              } catch (e) {
                o.log('JSON Parse Error', e)
              }
            if ((o.log('Receiver.receive', e, t), !t.method)) return !1
            if (t.context !== o.CONTEXT) return !1
            if (-1 === o.indexOf(o.METHODS.all(), t.method))
              return (
                this.emit('error', {
                  code: 2,
                  msg: 'Invalid Method "' + t.method + '"'
                }),
                !1
              )
            var i = o.isNone(t.listener) ? null : t.listener
            if ('addEventListener' === t.method)
              this.eventListeners.hasOwnProperty(t.value)
                ? -1 === o.indexOf(this.eventListeners[t.value], i) &&
                  this.eventListeners[t.value].push(i)
                : (this.eventListeners[t.value] = [i]),
                'ready' === t.value && this.isReady && this.ready()
            else if ('removeEventListener' === t.method) {
              if (this.eventListeners.hasOwnProperty(t.value)) {
                var n = o.indexOf(this.eventListeners[t.value], i)
                n > -1 && this.eventListeners[t.value].splice(n, 1),
                  0 === this.eventListeners[t.value].length &&
                    delete this.eventListeners[t.value]
              }
            } else this.get(t.method, t.value, i)
          }),
          (o.Receiver.prototype.get = function (e, t, i) {
            var n = this
            if (!this.methods.hasOwnProperty(e))
              return (
                this.emit('error', {
                  code: 3,
                  msg: 'Method Not Supported"' + e + '"'
                }),
                !1
              )
            var s = this.methods[e]
            if ('get' === e.substr(0, 3)) {
              s.call(this, function (t) {
                n.send(e, t, i)
              })
            } else s.call(this, t)
          }),
          (o.Receiver.prototype.on = function (e, t) {
            this.methods[e] = t
          }),
          (o.Receiver.prototype.send = function (e, t, i) {
            if ((o.log('Receiver.send', e, t, i), this.reject))
              return o.log('Receiver.send.reject', e, t, i), !1
            var n = { context: o.CONTEXT, version: o.VERSION, event: e }
            o.isNone(t) || (n.value = t), o.isNone(i) || (n.listener = i)
            var r = JSON.stringify(n)
            s.parent.postMessage(r, '' === this.origin ? '*' : this.origin)
          }),
          (o.Receiver.prototype.emit = function (e, t) {
            if (!this.eventListeners.hasOwnProperty(e)) return !1
            o.log('Instance.emit', e, t, this.eventListeners[e])
            for (var i = 0; i < this.eventListeners[e].length; i++) {
              var n = this.eventListeners[e][i]
              this.send(e, t, n)
            }
            return !0
          }),
          (o.Receiver.prototype.ready = function () {
            o.log('Receiver.ready'), (this.isReady = !0)
            var e = {
              src: s.location.toString(),
              events: this.supported.events,
              methods: this.supported.methods
            }
            this.emit('ready', e) || this.send('ready', e)
          }),
          (o.HTML5Adapter = function (e) {
            if (!(this instanceof o.HTML5Adapter)) return new o.HTML5Adapter(e)
            this.init(e)
          }),
          (o.HTML5Adapter.prototype.init = function (e) {
            o.assert(e, 'playerjs.HTML5Adapter requires a video element')
            var t = (this.receiver = new o.Receiver())
            e.addEventListener('playing', function () {
              t.emit('play')
            }),
              e.addEventListener('pause', function () {
                t.emit('pause')
              }),
              e.addEventListener('ended', function () {
                t.emit('ended')
              }),
              e.addEventListener('timeupdate', function () {
                t.emit('timeupdate', {
                  seconds: e.currentTime,
                  duration: e.duration
                })
              }),
              e.addEventListener('progress', function () {
                t.emit('buffered', { percent: e.buffered.length })
              }),
              t.on('play', function () {
                e.play()
              }),
              t.on('pause', function () {
                e.pause()
              }),
              t.on('getPaused', function (t) {
                t(e.paused)
              }),
              t.on('getCurrentTime', function (t) {
                t(e.currentTime)
              }),
              t.on('setCurrentTime', function (t) {
                e.currentTime = t
              }),
              t.on('getDuration', function (t) {
                t(e.duration)
              }),
              t.on('getVolume', function (t) {
                t(100 * e.volume)
              }),
              t.on('setVolume', function (t) {
                e.volume = t / 100
              }),
              t.on('mute', function () {
                e.muted = !0
              }),
              t.on('unmute', function () {
                e.muted = !1
              }),
              t.on('getMuted', function (t) {
                t(e.muted)
              }),
              t.on('getLoop', function (t) {
                t(e.loop)
              }),
              t.on('setLoop', function (t) {
                e.loop = t
              })
          }),
          (o.HTML5Adapter.prototype.ready = function () {
            this.receiver.ready()
          }),
          (o.JWPlayerAdapter = function (e) {
            if (!(this instanceof o.JWPlayerAdapter))
              return new o.JWPlayerAdapter(e)
            this.init(e)
          }),
          (o.JWPlayerAdapter.prototype.init = function (e) {
            o.assert(e, 'playerjs.JWPlayerAdapter requires a player object')
            var t = (this.receiver = new o.Receiver())
            ;(this.looped = !1),
              e.on('pause', function () {
                t.emit('pause')
              }),
              e.on('play', function () {
                t.emit('play')
              }),
              e.on('time', function (e) {
                var i = e.position,
                  n = e.duration
                if (!i || !n) return !1
                var s = { seconds: i, duration: n }
                t.emit('timeupdate', s)
              })
            var i = this
            e.on('complete', function () {
              !0 === i.looped ? e.seek(0) : t.emit('ended')
            }),
              e.on('error', function () {
                t.emit('error')
              }),
              t.on('play', function () {
                e.play(!0)
              }),
              t.on('pause', function () {
                e.pause(!0)
              }),
              t.on('getPaused', function (t) {
                t(e.getState().toLowerCase() !== 'PLAYING'.toLowerCase())
              }),
              t.on('getCurrentTime', function (t) {
                t(e.getPosition())
              }),
              t.on('setCurrentTime', function (t) {
                e.seek(t)
              }),
              t.on('getDuration', function (t) {
                t(e.getDuration())
              }),
              t.on('getVolume', function (t) {
                t(e.getVolume())
              }),
              t.on('setVolume', function (t) {
                e.setVolume(t)
              }),
              t.on('mute', function () {
                e.setMute(!0)
              }),
              t.on('unmute', function () {
                e.setMute(!1)
              }),
              t.on('getMuted', function (t) {
                t(!0 === e.getMute())
              }),
              t.on(
                'getLoop',
                function (e) {
                  e(this.looped)
                },
                this
              ),
              t.on(
                'setLoop',
                function (e) {
                  this.looped = e
                },
                this
              )
          }),
          (o.JWPlayerAdapter.prototype.ready = function () {
            this.receiver.ready()
          }),
          (o.MockAdapter = function () {
            if (!(this instanceof o.MockAdapter)) return new o.MockAdapter()
            this.init()
          }),
          (o.MockAdapter.prototype.init = function () {
            var e = {
                duration: 20,
                currentTime: 0,
                interval: null,
                timeupdate: function () {},
                volume: 100,
                mute: !1,
                playing: !1,
                loop: !1,
                play: function () {
                  ;(e.interval = setInterval(function () {
                    ;(e.currentTime += 0.25),
                      e.timeupdate({
                        seconds: e.currentTime,
                        duration: e.duration
                      })
                  }, 250)),
                    (e.playing = !0)
                },
                pause: function () {
                  clearInterval(e.interval), (e.playing = !1)
                }
              },
              t = (this.receiver = new o.Receiver())
            t.on('play', function () {
              var t = this
              e.play(),
                this.emit('play'),
                (e.timeupdate = function (e) {
                  t.emit('timeupdate', e)
                })
            }),
              t.on('pause', function () {
                e.pause(), this.emit('pause')
              }),
              t.on('getPaused', function (t) {
                t(!e.playing)
              }),
              t.on('getCurrentTime', function (t) {
                t(e.currentTime)
              }),
              t.on('setCurrentTime', function (t) {
                e.currentTime = t
              }),
              t.on('getDuration', function (t) {
                t(e.duration)
              }),
              t.on('getVolume', function (t) {
                t(e.volume)
              }),
              t.on('setVolume', function (t) {
                e.volume = t
              }),
              t.on('mute', function () {
                e.mute = !0
              }),
              t.on('unmute', function () {
                e.mute = !1
              }),
              t.on('getMuted', function (t) {
                t(e.mute)
              }),
              t.on('getLoop', function (t) {
                t(e.loop)
              }),
              t.on('setLoop', function (t) {
                e.loop = t
              })
          }),
          (o.MockAdapter.prototype.ready = function () {
            this.receiver.ready()
          }),
          (o.VideoJSAdapter = function (e) {
            if (!(this instanceof o.VideoJSAdapter))
              return new o.VideoJSAdapter(e)
            this.init(e)
          }),
          (o.VideoJSAdapter.prototype.init = function (e) {
            o.assert(e, 'playerjs.VideoJSReceiver requires a player object')
            var t = (this.receiver = new o.Receiver())
            e.on('pause', function () {
              t.emit('pause')
            }),
              e.on('play', function () {
                t.emit('play')
              }),
              e.on('timeupdate', function (i) {
                var n = e.currentTime(),
                  s = e.duration()
                if (!n || !s) return !1
                var r = { seconds: n, duration: s }
                t.emit('timeupdate', r)
              }),
              e.on('ended', function () {
                t.emit('ended')
              }),
              e.on('error', function () {
                t.emit('error')
              }),
              t.on('play', function () {
                e.play()
              }),
              t.on('pause', function () {
                e.pause()
              }),
              t.on('getPaused', function (t) {
                t(e.paused())
              }),
              t.on('getCurrentTime', function (t) {
                t(e.currentTime())
              }),
              t.on('setCurrentTime', function (t) {
                e.currentTime(t)
              }),
              t.on('getDuration', function (t) {
                t(e.duration())
              }),
              t.on('getVolume', function (t) {
                t(100 * e.volume())
              }),
              t.on('setVolume', function (t) {
                e.volume(t / 100)
              }),
              t.on('mute', function () {
                e.volume(0)
              }),
              t.on('unmute', function () {
                e.volume(1)
              }),
              t.on('getMuted', function (t) {
                t(0 === e.volume())
              }),
              t.on('getLoop', function (t) {
                t(e.loop())
              }),
              t.on('setLoop', function (t) {
                e.loop(t)
              })
          }),
          (o.VideoJSAdapter.prototype.ready = function () {
            this.receiver.ready()
          }),
          void 0 ===
            (n = function () {
              return o
            }.call(t, i, t, e)) || (e.exports = n)
      })(window, document)
    },
    49613: (e, t, i) => {
      'use strict'
      var n = i(95318)
      Object.defineProperty(t, '__esModule', { value: !0 }),
        (t.default = t.MaterialComponent = void 0)
      var s = n(i(34575)),
        r = n(i(93913)),
        o = n(i(78585)),
        a = n(i(29754)),
        l = n(i(2205)),
        c = n(i(50008)),
        h = i(30888),
        d = i(47056),
        u = i(26605),
        p = function (e, t, i, n) {
          var s,
            r = arguments.length,
            o =
              r < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n
          if (
            'object' ===
              ('undefined' == typeof Reflect
                ? 'undefined'
                : (0, c.default)(Reflect)) &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n)
          else
            for (var a = e.length - 1; a >= 0; a--)
              (s = e[a]) &&
                (o = (r < 3 ? s(o) : r > 3 ? s(t, i, o) : s(t, i)) || o)
          return r > 3 && o && Object.defineProperty(t, i, o), o
        },
        m = ['disabled'],
        g = (function (e) {
          function t() {
            return (
              (0, s.default)(this, t),
              (0, o.default)(this, (0, a.default)(t).apply(this, arguments))
            )
          }
          return (
            (0, l.default)(t, e),
            (0, r.default)(t, [
              {
                key: 'render',
                value: function (e) {
                  this.classText || (this.classText = this.buildClassName(e))
                  var t = e,
                    i = t.className || t.class || ''
                  t.class && delete t.class, t.className && delete t.className
                  var n = this.materialDom(t),
                    s = 'attributes'
                  return (
                    'props' in n
                      ? ((s = 'props'), (n.props = n.props || {}))
                      : (n.attributes = n.attributes || {}),
                    (n[s].className = ''
                      .concat(i, ' ')
                      .concat(this.getClassName(n))
                      .split(' ')
                      .filter(function (e, t, i) {
                        return i.indexOf(e) === t && '' !== e
                      })
                      .join(' ')),
                    this.mdcProps.forEach(function (e) {
                      e in m || delete n[s][e]
                    }),
                    n
                  )
                }
              },
              {
                key: 'componentDidMount',
                value: function () {
                  this.props.ripple &&
                    this.control &&
                    (this.ripple = new h.MDCRipple(this.control))
                }
              },
              {
                key: 'componentWillReceiveProps',
                value: function (e) {
                  if (this.MDComponent && this.mdcNotifyProps) {
                    var t = !0,
                      i = !1,
                      n = void 0
                    try {
                      for (
                        var s, r = this.mdcNotifyProps[Symbol.iterator]();
                        !(t = (s = r.next()).done);
                        t = !0
                      ) {
                        var o = s.value
                        this.props[o] !== e[o] && (this.MDComponent[o] = e[o])
                      }
                    } catch (e) {
                      ;(i = !0), (n = e)
                    } finally {
                      try {
                        t || null == r.return || r.return()
                      } finally {
                        if (i) throw n
                      }
                    }
                  }
                  var a = !0,
                    l = !1,
                    c = void 0
                  try {
                    for (
                      var h, d = this.mdcProps[Symbol.iterator]();
                      !(a = (h = d.next()).done);
                      a = !0
                    ) {
                      var u = h.value
                      if (this.props[u] !== e[u]) {
                        this.classText = this.buildClassName(e)
                        break
                      }
                    }
                  } catch (e) {
                    ;(l = !0), (c = e)
                  } finally {
                    try {
                      a || null == d.return || d.return()
                    } finally {
                      if (l) throw c
                    }
                  }
                }
              },
              {
                key: 'componentWillUnmount',
                value: function () {
                  this.ripple && this.ripple.destroy()
                }
              },
              {
                key: 'afterComponentDidMount',
                value: function () {
                  if (this.MDComponent && this.mdcNotifyProps) {
                    var e = !0,
                      t = !1,
                      i = void 0
                    try {
                      for (
                        var n, s = this.mdcNotifyProps[Symbol.iterator]();
                        !(e = (n = s.next()).done);
                        e = !0
                      ) {
                        var r = n.value
                        this.MDComponent[r] = this.props[r]
                      }
                    } catch (e) {
                      ;(t = !0), (i = e)
                    } finally {
                      try {
                        e || null == s.return || s.return()
                      } finally {
                        if (t) throw i
                      }
                    }
                  }
                }
              },
              {
                key: 'setControlRef',
                value: function (e) {
                  this.control = e
                }
              },
              {
                key: 'buildClassName',
                value: function (e) {
                  var t = 'mdc-' + this.componentName
                  for (var i in e)
                    if (e.hasOwnProperty(i)) {
                      var n = e[i]
                      'boolean' == typeof n &&
                        n &&
                        -1 !== this.mdcProps.indexOf(i) &&
                        (t += ' mdc-'
                          .concat(this.componentName, '--')
                          .concat(i))
                    }
                  return t
                }
              },
              {
                key: 'getClassName',
                value: function (e) {
                  if (!e) return ''
                  var t = 'attributes'
                  'props' in e
                    ? ((t = 'props'), (e.props = e.props || {}))
                    : (e.attributes = e.attributes || {})
                  var i = (e[t] = e[t] || {}),
                    n = this.classText
                  return (
                    i.class && (n += ' ' + i.class),
                    i.className &&
                      i.className !== i.class &&
                      (n += ' ' + i.className),
                    n
                  )
                }
              }
            ]),
            t
          )
        })(u.Component)
      ;(t.MaterialComponent = g),
        p([d.bind], g.prototype, 'setControlRef', null)
      var f = g
      t.default = f
    },
    28276: (e, t, i) => {
      'use strict'
      var n = i(95318)
      t.ZP = void 0
      var s = n(i(34575)),
        r = n(i(93913)),
        o = n(i(78585)),
        a = n(i(29754)),
        l = n(i(16525)),
        c = n(i(2205)),
        h = n(i(50008)),
        d = i(69826),
        u = i(47056),
        p = i(26605),
        m = n(i(49613)),
        g = function (e, t, i, n) {
          var s,
            r = arguments.length,
            o =
              r < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n
          if (
            'object' ===
              ('undefined' == typeof Reflect
                ? 'undefined'
                : (0, h.default)(Reflect)) &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n)
          else
            for (var a = e.length - 1; a >= 0; a--)
              (s = e[a]) &&
                (o = (r < 3 ? s(o) : r > 3 ? s(t, i, o) : s(t, i)) || o)
          return r > 3 && o && Object.defineProperty(t, i, o), o
        },
        f = function (e, t) {
          var i = {}
          for (var n in e)
            Object.prototype.hasOwnProperty.call(e, n) &&
              t.indexOf(n) < 0 &&
              (i[n] = e[n])
          if (null != e && 'function' == typeof Object.getOwnPropertySymbols) {
            var s = 0
            for (n = Object.getOwnPropertySymbols(e); s < n.length; s++)
              t.indexOf(n[s]) < 0 &&
                Object.prototype.propertyIsEnumerable.call(e, n[s]) &&
                (i[n[s]] = e[n[s]])
          }
          return i
        },
        v = (function (e) {
          function t() {
            var e
            return (
              (0, s.default)(this, t),
              ((e = (0, o.default)(
                this,
                (0, a.default)(t).apply(this, arguments)
              )).componentName = 'slider'),
              (e.mdcProps = ['discrete']),
              e
            )
          }
          return (
            (0, c.default)(t, e),
            (0, r.default)(t, [
              {
                key: 'componentDidMount',
                value: function () {
                  ;(0, l.default)(
                    (0, a.default)(t.prototype),
                    'componentDidMount',
                    this
                  ).call(this),
                    this.control &&
                      ((this.MDComponent = new d.MDCSlider(this.control)),
                      this.MDComponent.listen(
                        'MDCSlider:change',
                        this.onChange
                      ),
                      this.MDComponent.listen('MDCSlider:input', this.onInput)),
                    this.setValue(this.props.value)
                }
              },
              {
                key: 'componentWillUnmount',
                value: function () {
                  ;(0, l.default)(
                    (0, a.default)(t.prototype),
                    'componentWillUnmount',
                    this
                  ).call(this),
                    this.MDComponent &&
                      (this.MDComponent.unlisten(
                        'MDCSlider:change',
                        this.onChange
                      ),
                      this.MDComponent.unlisten(
                        'MDCSlider:input',
                        this.onInput
                      ),
                      this.MDComponent.destroy())
                }
              },
              {
                key: 'getValue',
                value: function () {
                  if (this.MDComponent) return this.MDComponent.value
                }
              },
              {
                key: 'setValue',
                value: function (e) {
                  var t = this.props,
                    i = t.disabled,
                    n = void 0 !== i && i,
                    s = t.min,
                    r = void 0 === s ? 0 : s,
                    o = t.max,
                    a = void 0 === o ? 100 : o,
                    l = t.step
                  this.MDComponent &&
                    (r > this.MDComponent.max
                      ? ((this.MDComponent.max = a), (this.MDComponent.min = r))
                      : ((this.MDComponent.min = r),
                        (this.MDComponent.max = a)),
                    e && (this.MDComponent.value = e),
                    (this.MDComponent.disabled = n),
                    l && (this.MDComponent.step = l))
                }
              },
              {
                key: 'onChange',
                value: function (e) {
                  this.props.onChange && this.props.onChange(e)
                }
              },
              {
                key: 'onInput',
                value: function (e) {
                  this.props.onInput && this.props.onInput(e)
                }
              },
              {
                key: 'materialDom',
                value: function (e) {
                  var t = e.tabindex,
                    i = void 0 === t ? 0 : t,
                    n = f(e, ['tabindex'])
                  return (
                    this.setValue(e),
                    (0, p.h)(
                      'div',
                      Object.assign(
                        {
                          tabIndex: i,
                          role: 'slider',
                          'aria-label': 'Select Value',
                          ref: this.setControlRef
                        },
                        n
                      ),
                      (0, p.h)(
                        'div',
                        { class: 'mdc-slider__track-container' },
                        (0, p.h)('div', { class: 'mdc-slider__track' })
                      ),
                      (0, p.h)(
                        'div',
                        { class: 'mdc-slider__thumb-container' },
                        n.discrete &&
                          (0, p.h)(
                            'div',
                            { class: 'mdc-slider__pin' },
                            (0, p.h)('span', {
                              class: 'mdc-slider__pin-value-marker'
                            })
                          ),
                        (0, p.h)(
                          'svg',
                          {
                            class: 'mdc-slider__thumb',
                            width: '21',
                            height: '21'
                          },
                          (0, p.h)('circle', {
                            cx: '10.5',
                            cy: '10.5',
                            r: '7.875'
                          })
                        ),
                        (0, p.h)('div', { class: 'mdc-slider__focus-ring' })
                      )
                    )
                  )
                }
              }
            ]),
            t
          )
        })(m.default)
      g([u.bind], v.prototype, 'onChange', null),
        g([u.bind], v.prototype, 'onInput', null)
      var y = v
      t.ZP = y
    },




    61040: (e, t, i) => {
      'use strict'
      var n = i(13733),
        s = i(27308),
        r = i(21924)('String.prototype.replace'),
        o =
          /^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/,
        a =
          /[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/
      e.exports = function () {
        var e = s(n(this))
        return r(r(e, o, ''), a, '')
      }
    },
    46057: (e, t, i) => {
      'use strict'
      var n = i(55559),
        s = i(4289),
        r = i(61040),
        o = i(30254),
        a = i(60029),
        l = n(o())
      s(l, { getPolyfill: o, implementation: r, shim: a }), (e.exports = l)
    },
    30254: (e, t, i) => {
      'use strict'
      var n = i(61040)
      e.exports = function () {
        return String.prototype.trim && '​' === '​'.trim()
          ? String.prototype.trim
          : n
      }
    },
    60029: (e, t, i) => {
      'use strict'
      var n = i(4289),
        s = i(30254)
      e.exports = function () {
        var e = s()
        return (
          n(
            String.prototype,
            { trim: e },
            {
              trim: function () {
                return String.prototype.trim !== e
              }
            }
          ),
          e
        )
      }
    },
    67121: (e, t, i) => {
      'use strict'
      e = i.hmd(e)
      !(function (e) {
        var t,
          i = e.Symbol
        if ('function' == typeof i)
          if (i.observable) t = i.observable
          else {
            t = i.for('https://github.com/benlesh/symbol-observable')
            try {
              i.observable = t
            } catch (e) {}
          }
        else t = '@@observable'
      })(
        'undefined' != typeof self
          ? self
          : 'undefined' != typeof window
          ? window
          : void 0 !== i.g
          ? i.g
          : e
      )
    },









    14973: (e, t, i) => {
      'use strict'
      i.d(t, { Z: () => s })
      var n = i(20331)
      async function s(e) {
        return { city: 'city', country: 'country', region: 'region' }
      }
    },



    56365: (e, t, i) => {
      'use strict'
      i.r(t), i.d(t, { default: () => CameraStartModule })
      var n = i(79956),
        s = i(18469),
        r = i(47724),
        o = i(73272),
        a = i(94329),
        l = i(91466)
      class StartLocationSetMessage extends l.v {
        constructor(e) {
          super(), (this.is360 = e)
        }
      }
      var c = i(88512),
        h = i(75892),
        d = i(19674),
        u = i(26587),
        p = i(38420),
        m = i(50988),
        g = i(94474),
        f = i(12935)
      class MdsCameraStartPatchSerializer {
        serialize(e) {
          return { image: e.sid }
        }
      }
      var v = i(91985)
      const y = new c.Z('mds-camera-start-store')
      class MdsCameraStartStore extends g.u {
        constructor() {
          super(...arguments),
            (this.deserializer = new f.f()),
            (this.serializer = new MdsCameraStartPatchSerializer())
        }
        async update(e) {
          const t = this.getViewId(),
            i = this.serializer.serialize(e)
          if (0 === Object.keys(i).length) throw new Error('No data to update?')
          return this.mutate(v.PatchModel, { modelId: t, patch: i }).then(
            (e) => {
              y.debug(e)
            }
          )
        }
      }
      var b = i(17386)
      class SetCameraStartCommand extends b.m {
        constructor(e) {
          super(), (this.payload = { snapshotSid: e })
        }
      }
      SetCameraStartCommand.id = 'SET_CAMERA_START'
      var S = i(80121),
        E = i(38330),
        T = i(31879),
        w = i(77680)
      const _ = (e) => {
          if (!e) return null
          const t = new s.O()
          if (!e.icon) return null
          ;(t.modified = (0, T.p)(e && e.modified)),
            (t.icon = e.icon || void 0),
            (t.pose = {})
          const i = 250,
            n = Math.ceil(140.625),
            r = e.image
              ? `${e.image}&width=${i}&height=${n}&fit=crop&imgopt=1`
              : void 0
          return (t.thumb = r ? new w.n(r, null) : void 0), t
        },
        M = (e, t) => {
          const i = t && 'icon' in t ? t : e
          return { modified: (0, T.U)(i.modified), icon: i.icon }
        }
      var x = i(18630),
        A = i(99398)
      var O = i(66097),
        D = i(14063)
      class MarketMonitor {
        constructor(e, t) {
          ;(this.hasChanges = !1),
            (this.changedHandlers = []),
            e.waitForData(t).then((e) => {
              ;(this.target = e),
                e.onChanged(() => {
                  ;(this.hasChanges = !0),
                    this.triggerChangeHandlers(this.target)
                })
            })
        }
        hasDiffRecord() {
          return this.hasChanges
        }
        getDiffRecord() {
          return this.target
        }
        clearDiffRecord() {
          this.hasChanges = !1
        }
        commitChanges() {
          this.triggerChangeHandlers(this.getDiffRecord())
        }
        onChanged(e) {
          this.changedHandlers.push(e)
        }
        removeOnChanged(e) {
          ;(0, D.b)(this.changedHandlers, e)
        }
        triggerChangeHandlers(e) {
          if (this.changedHandlers.length > 0)
            for (const t of this.changedHandlers) t(e)
        }
      }
      var C = i(8445)
      const P = new c.Z('camera-start')
      class CameraStartModule extends r.Y {
        constructor() {
          super(...arguments), (this.name = 'camera-start'), (this.store = null)
        }
        async init(e, t) {
          var i
          ;(this.engine = t),
            ([
              this.storage,
              this.sweepData,
              this.modelData,
              this.snapshotsData
            ] = await Promise.all([
              t.getModule(u.F),
              t.market.waitForData(h.Z),
              t.market.waitForData(C.T),
              t.market.waitForData(n.P)
            ])),
            (this.store = this.getStore(e))
          let r = this.modelData.model.image
          if (!e.readonly && this.store instanceof O.N) {
            const e = await this.store.read()
            e && e.icon && (r = e.icon)
          }
          const a = o.K.deserialize()
          if (a) {
            const e = this.parseNavigationPose(a)
            this.validStartPano(e)
              ? ((this.startingPose = new s.B()),
                this.startingPose.copy(e),
                P.debug('Starting Camera Pose', this.startingPose))
              : P.error('Invalid start pose', e)
          }
          this.bindings.push(
            this.engine.commandBinder.addBinding(
              SetCameraStartCommand,
              async (e) => this.updateStartLocationFromSnapshot(e.snapshotSid)
            ),
            this.storage.onSave(() => this.save(), {
              dataType: p.g.START_LOCATION
            }),
            this.storage.onRevert(() => this.revert(), {
              dataType: p.g.START_LOCATION
            })
          )
          const l = r || void 0,
            c = this.getIconThumbnail(l),
            d = this.getIconStartPose(l) || this.getStartFallback()
          if (
            null === (i = null == d ? void 0 : d.pano) || void 0 === i
              ? void 0
              : i.uuid
          ) {
            const e = this.sweepData.getSweep(d.pano.uuid)
            e &&
              !e.enabled &&
              (P.warn(`Enabled hidden start sweep ${d.pano.uuid}`),
              (e.enabled = !0),
              e.commit())
          }
          ;(this.data = new s.O(l, c, d)),
            t.market.register(this, s.O, this.data)
        }
        getStore(e) {
          const {
            modelId: t,
            baseUrl: i,
            readonly: n,
            storageProvider: r,
            queue: o
          } = e
          if ((P.info(`Loading camera start from ${r}`), r === p.Xq.MDS))
            return new MdsCameraStartStore({ readonly: n })
          const a = (function (e) {
            const { modelId: t, readonly: i } = e,
              n = e.baseUrl || '',
              s = e.queue,
              r = { data: null },
              o = `${n}/api/v1/player/models/${t}`
            if (i) {
              const e = new E.gh({
                queue: s,
                path: o,
                deserialize: _,
                cachedData: r
              })
              return new S.nM({ publishStores: [e] })
            }
            const a = new E.yh({
                queue: s,
                path: o,
                httpMethod: E.w$.PATCH,
                deserialize: _,
                serialize: M
              }),
              l = `${n}/api/v1/jsonstore/model/workshopSession/${t}`,
              c = new x.Z(
                {
                  queue: s,
                  path: l,
                  cachedData: { data: null },
                  httpMethod: E.w$.PATCH,
                  deserialize: A.S.sessionObjectExtract(x.j.Model, _),
                  serialize: M
                },
                x.j.Model
              )
            return new S.nM({
              publishStores: [a],
              editStore: c,
              editStoreKey: S.aw.START_LOCATION
            })
          })({ modelId: t, baseUrl: i, readonly: n, queue: o })
          if (!n) {
            const e = new MarketMonitor(this.engine.market, s.O)
            a.addMonitor(e)
          }
          return new O.N(a, {
            dataType: p.g.START_LOCATION,
            readonly: n,
            engine: this.engine
          })
        }
        getStartingPose() {
          return this.startingPose || this.data.pose
        }
        parseNavigationPose(e) {
          const {
            mode: t,
            quaternion: i,
            position: n,
            floorVisibility: s,
            sweepIndex: r,
            zoom: o
          } = e
          let { panoId: a } = e
          if (a && !this.sweepData.containsSweep(a)) {
            const e = this.sweepData.getSweepByUuid(a)
            e && (a = e.id)
          }
          if (!a && void 0 !== r) {
            const e = this.sweepData.getSweepByIndex(r)
            e ? (a = e.id) : P.debug(`Failed to load sweep index ${r}`)
          }
          return {
            mode: t,
            camera: { position: n, rotation: i, zoom: o },
            pano: { uuid: a },
            floorVisibility: s
          }
        }
        async updateStartLocationFromSnapshot(e) {
          const t = this.snapshotsData.get(e),
            i = this.buildCameraStart(t),
            n = new s.O(t.sid, t.thumbnailUrl, i)
          this.data.copy(n),
            this.data.commit(),
            this.engine.broadcast(new StartLocationSetMessage(t.is360)),
            await this.engine.commandBinder.issueCommand(
              new m.VQ({ dataTypes: [p.g.START_LOCATION] })
            )
        }
        async save() {
          const e = this.data.icon
          if (!e || !this.store)
            return void P.warn('Unable to save start location')
          if (this.store instanceof O.N) return
          const t = this.snapshotsData.get(e)
          return this.store.update(t)
        }
        async revert() {
          if (this.store instanceof O.N) return this.store.revert()
        }
        buildCameraStart(e) {
          const t = {
            mode: e.metadata.cameraMode,
            camera: {
              position: e.metadata.cameraPosition,
              rotation: e.metadata.cameraQuaternion,
              zoom: e.metadata.orthoZoom
            },
            pano: {}
          }
          return (
            (0, a.Bw)(t.mode) && (t.pano = { uuid: e.metadata.scanId }),
            (t.floorVisibility = e.metadata.floorVisibility),
            t
          )
        }
        defaultCameraStart(e) {
          return {
            mode: a.Ey.Panorama,
            camera: {
              position: e.position,
              rotation: (0, d.Z)(e.rotation),
              zoom: 0
            },
            pano: { uuid: e.id }
          }
        }
        validStartPano(e) {
          return (
            !!e &&
            (!(0, a.Bw)(e.mode) ||
              (!!e.pano.uuid && this.sweepData.containsSweep(e.pano.uuid)))
          )
        }
        getStartFallback() {
          const e =
            this.sweepData.getFirstAlignedSweep() ||
            this.sweepData.getFirstSweep()
          if (void 0 !== e) return this.defaultCameraStart(e)
        }
        getIconStartPose(e) {
          let t = null
          return (
            e &&
              e in this.snapshotsData.collection &&
              (t = new s.B().copy(
                this.buildCameraStart(this.snapshotsData.get(e))
              )),
            this.validStartPano(t) || (t = null),
            t
          )
        }
        getIconThumbnail(e) {
          if (e && e in this.snapshotsData.collection)
            return this.snapshotsData.get(e).thumbnailUrl
        }
      }
    },








    66225: (e, t, i) => {
      'use strict'
      i.r(t), i.d(t, { default: () => FloorDataModule })
      var n = i(2212),
        s = i(66097),
        r = i(47724),
        o = i(39729),
        a = i(71194),
        l = i(57361),
        c = i(26627),
        h = i(67027),
        d = i(26587),
        u = i(50988),
        p = i(38420),
        m = i(75892),
        g = i(35026),
        f = i(88512),
        v = i(81047),
        y = i(94474),
        b = i(99487)
      const S = new f.Z('mds-floor-deserializer')
      class MdsFloorDeserializer {
        deserialize(e) {
          if (!e || !this.validate(e))
            return S.debug('Deserialized invalid floor data from MDS', e), null
          const t = e.label || '',
            i = e.dimensions || {},
            { areaFloor: n } = i
          return new b.O({
            id: e.id,
            index: e.sequence,
            meshGroup: e.meshId,
            name: t,
            areaFloor: n || -1
          })
        }
        validate(e) {
          return ['id', 'sequence', 'meshId'].every((t) => t in e)
        }
      }
      class MdsFloorPatchSerializer {
        serialize(e) {
          return { label: e.name }
        }
      }
      class MdsFloorStore extends y.u {
        constructor() {
          super(...arguments),
            (this.deserializer = new MdsFloorDeserializer()),
            (this.prefetchKey = 'data.model.floors')
        }
        async read(e = {}) {
          const t = { modelId: this.getViewId() }
          return this.query(v.GetFloors, t, e).then((e) => {
            var t, i
            const n =
              null ===
                (i =
                  null === (t = null == e ? void 0 : e.data) || void 0 === t
                    ? void 0
                    : t.model) || void 0 === i
                ? void 0
                : i.floors
            if (!n || !Array.isArray(n)) return null
            return n.reduce((e, t) => {
              const i = this.deserializer.deserialize(t)
              return i && (e[t.id] = i), e
            }, {})
          })
        }
        async update(e, t) {
          const i = this.getViewId(),
            n = new MdsFloorPatchSerializer().serialize(t)
          if (!n) throw new Error('Could not update Floor')
          return this.mutate(v.PatchFloor, {
            modelId: i,
            floorId: e,
            data: n
          })
        }
      }
      var E = i(38330),
        T = i(80121),
        w = i(99398),
        _ = i(18630),
        M = i(53149),
        x = i(85861)
      const A = (e) => e.replace(/,/gi, ' ').trim(),
        O = (e) => {
          if (!e || !e.floors) return null
          const t = {}
          return (
            e.floors.split(',').forEach((e, i) => {
              const n = e.trim()
              ;(n || '' === n) &&
                (t[i] = new b.O({
                  id: String(i),
                  name: n,
                  meshGroup: i,
                  index: i
                }))
            }),
            t
          )
        },
        D = (e, t) => {
          const i = (0, x.p$)(e)
          ;(0, x.TS)(i, t)
          const n = []
          for (const e in i) {
            const t = i[e]
            if (!t) continue
            const s = A(t.name || ''),
              r = parseInt(e, 10)
            if (isNaN(r)) throw new M.H(`Can't save non-numeric floor ID ${r}`)
            n[r] = s
          }
          return { floors: n.join(',') }
        }
      var C = i(74003)
      const P = new f.Z('floors-data')
      class FloorDataModule extends r.Y {
        constructor() {
          super(...arguments), (this.name = 'floors')
        }
        async init(e, t) {
          const { readonly: i } = e
          ;(this.engine = t), (this.store = this.configureStorage(e))
          const [n, r, a, g] = await Promise.all([
              this.store.read(),
              t.market.waitForData(h._),
              t.market.waitForData(m.Z),
              t.getModule(d.F)
            ]),
            f = a.getSweepList()
          this.data = new c.i(n || {})
          const v = this.data.mapMeshesToFloors([...r.meshGroups.floors])
          if (
            (r.setMeshIds({ floorIdMap: v }),
            this.mapSweepsToFloors(f),
            t.market.register(this, c.i, this.data),
            this.fixupSweepsWithoutFloorData(f),
            !1 === i)
          ) {
            const e = this.data.getCollection()
            ;(this.monitor = new l.c(e, { aggregationType: o.E.NextFrame }, t)),
              this.monitor.onChanged(() =>
                this.engine.commandBinder.issueCommand(
                  new u.VQ({ dataTypes: [p.g.FLOORS] })
                )
              ),
              this.store instanceof s.N && this.store.addMonitor(this.monitor),
              this.bindings.push(
                g.onSave(() => this.save(), { dataType: p.g.FLOORS }),
                g.onRevert(() => this.revert(), { dataType: p.g.FLOORS })
              )
          }
        }
        configureStorage(e) {
          const { modelId: t, baseUrl: i, queue: n } = e,
            r = e.storageProvider || p.Xq.JSONSTORE,
            o = !('readonly' in e) || !!e.readonly
          if ((P.info(`Loading floors from ${r}`), r === p.Xq.MDS))
            return new MdsFloorStore({ readonly: o, baseUrl: i })
          const a = (function (e) {
            const { modelId: t, readonly: i } = e,
              n = e.baseUrl || '',
              s = e.queue,
              r = { data: null },
              o = `${n}/api/v1/player/models/${t}`
            if (i) {
              const e = new E.gh({
                queue: s,
                path: o,
                deserialize: O,
                cachedData: r
              })
              return new T.iY({ publishStores: [e] })
            }
            const a = new E.yh({
                queue: s,
                path: o,
                httpMethod: E.w$.PATCH,
                deserialize: O,
                serialize: D
              }),
              l = `${n}/api/v1/jsonstore/model/workshopSession/${t}`,
              c = new _.Z(
                {
                  queue: s,
                  path: l,
                  cachedData: { data: null },
                  deserialize: w.S.sessionObjectExtract(_.j.FloorNames, O),
                  serialize: D
                },
                _.j.FloorNames
              )
            return new T.iY({
              publishStores: [a],
              editStore: c,
              editStoreKey: T.aw.FLOOR_NAMES
            })
          })({ modelId: t, baseUrl: i, readonly: o, queue: n })
          return new s.N(a, {
            dataType: p.g.FLOORS,
            readonly: o,
            engine: this.engine
          })
        }
        onUpdate() {}
        mapSweepsToFloors(e) {
          e.forEach((e) => {
            if (e.alignmentType === g.z9.ALIGNED) {
              let t
              ;(t =
                e.floorId && this.data.hasFloor(e.floorId)
                  ? this.data.getFloor(e.floorId)
                  : this.data.getClosestFloorAtHeight(e.position.y)),
                t && t.addSweep(e)
            }
          })
        }
        fixupSweepsWithoutFloorData(e) {
          const t = new n.Vector3()
          for (const i of e)
            if (null === i.floorId || !this.data.hasFloor(i.floorId)) {
              t.setY(i.position.y)
              const e = this.data.getFloorAtHeight(i.position.y)
              ;(null == e ? void 0 : e.id) &&
                e.id !== i.floorId &&
                (P.debug(
                  `Setting ${i.alignmentType} sweep ${i.id} from floor ${i.floorId} to ${e.id}`
                ),
                this.engine.broadcast(new C.M(i, i.floorId, i.floorId)),
                (i.floorId = e.id))
            }
        }
        getFloorMins() {
          const e = []
          return (
            this.data.iterate((t) => {
              e.push(t.bottom)
            }),
            e
          )
        }
        async save() {
          const e = this.monitor.getDiffRecord()
          this.monitor.clearDiffRecord()
          const t = []
          for (const i of e) {
            const e = i.index
            if (!e) throw new M.H(`Invalid floor '${i.index}'`)
            i.action === a.KI.updated && t.push(this.store.update(e, i.diff))
          }
          return Promise.all(t)
        }
        async revert() {
          if (this.store instanceof s.N) return this.store.revert()
        }
      }
    },





    33746: (e, t, i) => {
      'use strict'
      i.d(t, { lZ: () => n, ig: () => s, oO: () => c })
      var n,
        s,
        r = i(26605),
        o = i(2116),
        a = i(94184),
        l = function (e, t, i, n) {
          var s,
            r = arguments.length,
            o =
              r < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n)
          else
            for (var a = e.length - 1; a >= 0; a--)
              (s = e[a]) &&
                (o = (r < 3 ? s(o) : r > 3 ? s(t, i, o) : s(t, i)) || o)
          return r > 3 && o && Object.defineProperty(t, i, o), o
        }
      !(function (e) {
        ;(e.UP = 'up'),
          (e.DOWN = 'down'),
          (e.LEFT = 'left'),
          (e.RIGHT = 'right'),
          (e.UP_LEFT = 'up-left'),
          (e.UP_RIGHT = 'up-right'),
          (e.DOWN_LEFT = 'down-left'),
          (e.DOWN_RIGHT = 'down-right')
      })(n || (n = {})),
        (function (e) {
          ;(e.SMALL = 'small'),
            (e.MEDIUM = 'medium'),
            (e.LARGE = 'large'),
            (e.XLARGE = 'xlarge'),
            (e.FIT = 'fit')
        })(s || (s = {}))
      let c = class DataBalloon extends r.Component {
        constructor() {
          super(),
            (this.onClick = (e) => {
              this.props.showOnClick &&
                this.setState((e) => ({ persist: !e.persist })),
                void 0 !== this.props.tooltipTimeout &&
                  window.setTimeout(() => {
                    this.setState({ tooltipEnabled: !1 })
                  }, this.props.tooltipTimeout)
            }),
            (this.onMouseEnter = (e) => {
              this.enableTooltip(), this.adjustBalloonPosIfNeeded(e)
            }),
            (this.enableTooltip = () => {
              this.setState({ tooltipEnabled: !0 })
            }),
            (this.state = {
              currentPosition: null,
              tooltipEnabled: !0,
              persist: !1
            })
        }
        render() {
          const {
              children: e,
              position: t,
              content: i,
              className: n,
              tooltipWidth: s
            } = this.props,
            { currentPosition: o, tooltipEnabled: l, persist: c } = this.state
          return (0, r.h)(
            'div',
            {
              type: 'button',
              'data-balloon': i,
              'data-balloon-pos': o || t,
              'data-balloon-width': s,
              'data-balloon-persist': c || void 0,
              class: a('data-balloon', n, { disabled: !l }),
              onClick: this.onClick,
              onTouchStart: this.enableTooltip,
              onMouseEnter: this.onMouseEnter
            },
            e
          )
        }
        adjustBalloonPosIfNeeded(e) {
          const { currentPosition: t } = this.state
          if (null === t) {
            const t = e.target,
              { position: i } = this.props
            let s = i
            if (i !== n.LEFT && i !== n.RIGHT) {
              const e = window.getComputedStyle(t, ':after'),
                r = e.width ? parseInt(e.width, 10) : 0
              if (r > 0) {
                const e = t.getBoundingClientRect(),
                  o = (r - e.width) / 2,
                  a = i === n.UP || i === n.UP_RIGHT || i === n.UP_LEFT
                e.left - o <= 0
                  ? (s = a ? n.UP_RIGHT : n.DOWN_RIGHT)
                  : (i === n.UP_LEFT || i === n.DOWN_LEFT) && e.left - r <= 0
                  ? (s = a ? n.UP : n.DOWN)
                  : e.right + o >= window.innerWidth
                  ? (s = a ? n.UP_LEFT : n.DOWN_LEFT)
                  : (i === n.UP_RIGHT || i === n.DOWN_RIGHT) &&
                    e.right + r >= window.innerWidth &&
                    (s = a ? n.UP : n.DOWN)
              }
            }
            this.setState({ currentPosition: s })
          }
        }
      }
      c = l([o.Z], c)
    },
    36114: (e, t, i) => {
      'use strict'
      i.d(t, { D: () => s, h: () => p })
      var n,
        s,
        r = i(26605),
        o = i(94184),
        a = i.n(o),
        l = i(2116),
        c = i(60771),
        h = i(33746),
        d = i(47210),
        u = function (e, t, i, n) {
          var s,
            r = arguments.length,
            o =
              r < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n)
          else
            for (var a = e.length - 1; a >= 0; a--)
              (s = e[a]) &&
                (o = (r < 3 ? s(o) : r > 3 ? s(t, i, o) : s(t, i)) || o)
          return r > 3 && o && Object.defineProperty(t, i, o), o
        }
      !(function (e) {
        ;(e[(e.CLEAR = 0)] = 'CLEAR'),
          (e[(e.PLAIN = 1)] = 'PLAIN'),
          (e[(e.OVERLAY = 2)] = 'OVERLAY'),
          (e[(e.PRIMARY = 3)] = 'PRIMARY'),
          (e[(e.SOCIAL = 4)] = 'SOCIAL'),
          (e[(e.TOOLBAR = 5)] = 'TOOLBAR')
      })(s || (s = {}))
      let p = (n = class IconButton extends r.Component {
        constructor(e) {
          super(e),
            (this.onClick = (e) => {
              const t = this.props.buttonState
              t !== d.BN.BUSY &&
                t !== d.BN.DISABLED &&
                this.props.onClick &&
                this.props.onClick(e)
            }),
            (this.onMouseDown = (e) => {
              const { onMouseDown: t, onClick: i, buttonState: s } = this.props
              if (t) t(e)
              else if (
                n.iMobile &&
                i &&
                s !== d.BN.BUSY &&
                s !== d.BN.DISABLED
              ) {
                const t = document.activeElement
                t && e.cancelable && (t.blur(), e.preventDefault())
              }
            })
        }
        render() {
          const {
              id: e,
              dataValue: t,
              tooltipMsg: i,
              tooltipPosition: n,
              tooltipPreformatted: o,
              tooltipWidth: l,
              tooltipPersist: c,
              buttonState: u,
              buttonStyle: p,
              buttonSize: m,
              className: g,
              children: f,
              iconClass: v,
              ariaLabel: y,
              onClick: b,
              onMouseUp: S
            } = this.props,
            E = u === d.BN.DISABLED,
            T = u === d.BN.BUSY,
            w = u === d.BN.DECORATIVE,
            _ = !E && !T && !w,
            M = i ? n || h.lZ.DOWN : void 0,
            x = i ? !!o : void 0,
            A = {
              'button-small': m === d.qE.SMALL,
              'button-large': m === d.qE.LARGE,
              'button-disabled': E,
              'button-dimmed': u === d.BN.DIMMED,
              'button-active': u === d.BN.ACTIVE,
              'button-busy': T,
              'button-interactive': _,
              'icon-button-primary': p === s.PRIMARY,
              'icon-button-overlay': p === s.OVERLAY,
              'icon-button-plain': p === s.PLAIN,
              'icon-button-social': p === s.SOCIAL,
              'icon-button-toolbar': p === s.TOOLBAR
            }
          return (0, r.h)(
            'div',
            {
              id: e,
              role: 'button',
              'aria-label': y || i,
              'aria-disabled': E,
              'data-value': t,
              'data-balloon': i,
              'data-balloon-pos': M,
              'data-balloon-width': l,
              'data-balloon-pre': x,
              'data-balloon-persist': c,
              class: a()('icon-button', A, g),
              onClick: b ? this.onClick : void 0,
              onMouseUp: S,
              onMouseDown: this.onMouseDown
            },
            v && (0, r.h)('span', { class: `icon ${v}` }),
            f
          )
        }
      })
      ;(p.iMobile = (0, c.s)() || (0, c._1)()), (p = n = u([l.Z], p))
    },
    47210: (e, t, i) => {
      'use strict'
      i.d(t, { BN: () => s, qE: () => r, ZJ: () => o, zx: () => p })
      var n,
        s,
        r,
        o,
        a = i(26605),
        l = i(94184),
        c = i.n(l),
        h = i(2116),
        d = i(60771),
        u = function (e, t, i, n) {
          var s,
            r = arguments.length,
            o =
              r < 3
                ? t
                : null === n
                ? (n = Object.getOwnPropertyDescriptor(t, i))
                : n
          if (
            'object' == typeof Reflect &&
            'function' == typeof Reflect.decorate
          )
            o = Reflect.decorate(e, t, i, n)
          else
            for (var a = e.length - 1; a >= 0; a--)
              (s = e[a]) &&
                (o = (r < 3 ? s(o) : r > 3 ? s(t, i, o) : s(t, i)) || o)
          return r > 3 && o && Object.defineProperty(t, i, o), o
        }
      !(function (e) {
        ;(e.ENABLED = 'enabled'),
          (e.DISABLED = 'disabled'),
          (e.DECORATIVE = 'decorative'),
          (e.DIMMED = 'dimmed'),
          (e.ACTIVE = 'active'),
          (e.BUSY = 'busy')
      })(s || (s = {})),
        (function (e) {
          ;(e[(e.STANDARD = 0)] = 'STANDARD'),
            (e[(e.MINI = 1)] = 'MINI'),
            (e[(e.SMALL = 2)] = 'SMALL'),
            (e[(e.LARGE = 3)] = 'LARGE')
        })(r || (r = {})),
        (function (e) {
          ;(e[(e.PRIMARY = 0)] = 'PRIMARY'),
            (e[(e.SECONDARY = 1)] = 'SECONDARY'),
            (e[(e.TERTIARY = 2)] = 'TERTIARY'),
            (e[(e.OUTLINE = 3)] = 'OUTLINE'),
            (e[(e.OVERLAY = 4)] = 'OVERLAY'),
            (e[(e.LIGHT = 5)] = 'LIGHT'),
            (e[(e.SECONDARY_LIGHT = 6)] = 'SECONDARY_LIGHT'),
            (e[(e.CLEAR = 7)] = 'CLEAR'),
            (e[(e.TOOLBAR = 8)] = 'TOOLBAR'),
            (e[(e.PLAIN = 9)] = 'PLAIN')
        })(o || (o = {}))
      let p = (n = class Button extends a.Component {
        constructor(e) {
          super(e),
            (this.handlingClick = !1),
            (this.mouseupTimeout = 0),
            (this.onMouseDown = (e) => {
              if (((this.handlingClick = !1), this.props.onMouseDown))
                this.props.onMouseDown(e)
              else if (n.iMobile && this.props.onClick) {
                const t = document.activeElement
                t &&
                  e.cancelable &&
                  ((this.handlingClick = !0),
                  e.preventDefault(),
                  e.stopImmediatePropagation(),
                  t.blur(),
                  window.addEventListener(
                    'mouseup',
                    (t) => {
                      this.handlingClick &&
                        (this.handleClick(e),
                        window.clearTimeout(this.mouseupTimeout))
                    },
                    { once: !0 }
                  ),
                  (this.mouseupTimeout = window.setTimeout(() => {
                    this.handlingClick = !1
                  }, 300)))
              }
            }),
            (this.onClick = (e) => {
              this.handlingClick || this.handleClick(e)
            })
        }
        handleClick(e) {
          const { buttonState: t, onClickArgs: i = [] } = this.props,
            n = t === s.DISABLED,
            r = t === s.BUSY,
            o = t === s.DECORATIVE
          !this.props.onClick || n || r || o
            ? e.stopPropagation()
            : this.props.onClick(e, ...i)
        }
        render() {
          const {
              ariaLabel: e,
              buttonSize: t,
              buttonState: i,
              buttonStyle: n,
              children: l,
              className: h,
              dataValue: d,
              id: u,
              multiline: p,
              onMouseEnter: m,
              onMouseLeave: g,
              tooltipMsg: f,
              tooltipPosition: v,
              tooltipPreformatted: y
            } = this.props,
            b = i === s.DISABLED,
            S = i === s.BUSY,
            E = i === s.DECORATIVE,
            T = n === o.SECONDARY || n === o.SECONDARY_LIGHT,
            w = n === o.TERTIARY,
            _ = n === o.LIGHT || n === o.SECONDARY_LIGHT,
            M = {
              'button-small': t === r.SMALL,
              'button-large': t === r.LARGE,
              'button-mini': t === r.MINI,
              'button-secondary': T,
              'button-tertiary': w,
              'button-outline': n === o.OUTLINE,
              'button-light': _,
              'button-primary': n === o.PRIMARY,
              'button-overlay': n === o.OVERLAY,
              'button-clear': n === o.CLEAR,
              'button-plain': n === o.PLAIN,
              'button-toolbar': n === o.TOOLBAR,
              'button-active': i === s.ACTIVE,
              'button-dimmed': i === s.DIMMED,
              'button-busy': S,
              'button-disabled': b,
              'button-decorative': E,
              'button-multiline': p
            }
          return (0, a.h)(
            'div',
            {
              id: u,
              type: 'button',
              role: 'button',
              'aria-label': e || f,
              'aria-disabled': b,
              class: c()('button', M, h),
              'data-value': d,
              onClick: this.onClick,
              onMouseEnter: m,
              onMouseLeave: g,
              onMouseDown: this.onMouseDown,
              'data-balloon': f || null,
              'data-balloon-pre': !!y,
              'data-balloon-pos': v || null
            },
            l
          )
        }
      })
      ;(p.iMobile = (0, d.s)() || (0, d._1)()), (p = n = u([h.Z], p))
    },
    19806: (e, t, i) => {
      'use strict'
      i.d(t, { A: () => h, P: () => CloseButton })
      var n = i(26605),
        s = i(94184),
        r = i.n(s),
        o = i(36114),
        a = i(33746),
        l = i(13789)
      const { CLOSE_BUTTON_TOOLTIP_MESSAGE: c } = l.Z.REUSABLES
      var h
      !(function (e) {
        ;(e[(e.DEFAULT = 0)] = 'DEFAULT'),
          (e[(e.LIGHT = 1)] = 'LIGHT'),
          (e[(e.SHADOW = 2)] = 'SHADOW'),
          (e[(e.OVERLAY = 3)] = 'OVERLAY'),
          (e[(e.TOOLBAR = 4)] = 'TOOLBAR')
      })(h || (h = {}))
      class CloseButton extends n.Component {
        constructor(e) {
          super(e),
            (this.handleMouseDown = (e) => {
              const { closeOnMouseDown: t, onClose: i } = this.props
              t && i && i(e)
            })
        }
        getIconButtonStyle() {
          switch (this.props.buttonStyle) {
            case h.LIGHT:
            case h.SHADOW:
              return o.D.CLEAR
            case h.OVERLAY:
              return o.D.OVERLAY
            case h.TOOLBAR:
              return o.D.TOOLBAR
            default:
              return o.D.PLAIN
          }
        }
        render() {
          const { locale: e } = this.context,
            { buttonStyle: t, onClose: i, hideTooltip: s } = this.props,
            l = s ? void 0 : e.t(c),
            d = s ? e.t(c) : void 0,
            u = r()('close-button', {
              'close-button-shadow': t === h.SHADOW,
              'close-button-light': t === h.LIGHT
            })
          return (0, n.h)(o.h, {
            className: u,
            ariaLabel: d,
            iconClass: 'icon-close',
            buttonStyle: this.getIconButtonStyle(),
            tooltipMsg: l,
            tooltipPosition: a.lZ.DOWN,
            onClick: i,
            onMouseDown: this.handleMouseDown
          })
        }
      }
    },



















    12935: (e, t, i) => {
      'use strict'
      i.d(t, { f: () => MdsSnapshotDeserializer })
      var n,
        s,
        r = i(2212)
      !(function (e) {
        ;(e.SNAPSHOT = 'snapshot'), (e.TOUR = 'tour')
      })(n || (n = {})),
        (function (e) {
          ;(e.USER = 'user'), (e.VISION = 'vision')
        })(s || (s = {}))
      var o = i(936),
        a = i(76875),
        l = i(34031),
        c = i(94329),
        h = i(88512),
        d = i(19674),
        u = i(71918),
        p = i(31879),
        m = i(25040),
        g = i(65814),
        f = i(77680)
      const v = new h.Z('mds-snapshot-deserializer')
      class MdsSnapshotDeserializer {
        deserialize(e) {
          if (!e || !this.validate(e))
            return (
              v.debug('Deserialized invalid Snapshot data from MDS', e), null
            )
          const t = new m.a()
          ;(t.sid = e.id),
            (t.thumbnailUrl = new f.n(
              e.thumbnailUrl || '',
              (0, p.p)(e.validUntil, null)
            )),
            (t.imageUrl = new f.n(
              e.presentationUrl || '',
              (0, p.p)(e.validUntil, null)
            )),
            (t.name = e.label || ''),
            (t.category = this.getCwfSnapshotCategory(e) || g.i.USER),
            (t.width = e.width || 0),
            (t.height = e.height || 0),
            (t.created = (0, p.p)(e.created)),
            (t.modified = (0, p.p)(e.modified)),
            (t.visionLabel = e.classification || '')
          const i = (0, u.qw)(e, 'snapshotLocation.anchor.pano.placement')
          t.is360 = !(!i || i === o.b.AUTO)
          const { snapshotLocation: n } = e
          if (n) {
            const e = n.position
                ? d.ep.fromVisionVector(n.position)
                : new r.Vector3(),
              i = n.rotation
                ? d.ep.fromVisionCameraQuaternion(n.rotation)
                : new r.Quaternion(),
              s = this.getCwfViewmode(n.viewMode) || c.Ey.Panorama,
              o = []
            for (const e of n.floorVisibility) {
              for (let t = 0; t < e.sequence; t++) o[t] = o[t] || 0
              o[e.sequence] = 1
            }
            t.metadata = {
              cameraMode: s,
              cameraPosition: e,
              cameraQuaternion: i,
              scanId: (n.anchor && n.anchor.id) || '',
              orthoZoom: s === c.Ey.Floorplan ? n.zoom : -1,
              ssZoom: n.zoom || 1,
              floorId:
                n.floorVisibility.length > 0 ? n.floorVisibility[0].id : null,
              floorVisibility: o
            }
          }
          return t
        }
        validate(e) {
          var t
          if (
            !(null === (t = e.snapshotLocation) || void 0 === t
              ? void 0
              : t.position)
          )
            return !1
          const i = [
              'id',
              'snapshotLocation',
              'thumbnailUrl',
              'presentationUrl'
            ].every((t) => t in e),
            n = null !== this.getCwfSnapshotCategory(e)
          return i && n
        }
        getCwfViewmode(e) {
          const t = {
            [a.w.DOLLHOUSE]: c.Ey.Dollhouse,
            [a.w.PANORAMA]: c.Ey.Panorama,
            [a.w.FLOORPLAN]: c.Ey.Floorplan,
            [a.w.MESH]: c.Ey.Panorama
          }
          return e in t ? t[e] : null
        }
        getCwfSnapshotCategory(e) {
          if (e.category === n.TOUR) return g.i.TOUR
          if (e.origin === s.VISION) return g.i.AUTO
          if (e.type === l.B.EQUIRECTANGULAR) return g.i.PANORAMA
          const t = (0, u.qw)(e, 'snapshotLocation.anchor.pano.placement')
          return e.type === l.B.PHOTO2D
            ? t === o.b.MANUAL
              ? g.i.UNALIGNED
              : g.i.USER
            : null
        }
      }
    },
    15585: (e, t, i) => {
      'use strict'
      i.d(t, { U: () => MaasAttachmentsStore })
      var n = i(46963),
        s = i(92540),
        r = i(81063),
        o = i(49398)
      class MaasAttachmentsStore {
        constructor(e = { readonly: !0 }) {
          this.viewId = null
          const { baseUrl: t, viewId: i } = e
          ;(this.config = e),
            (this.client = new s.w({ baseUrl: t, server: r.wO })),
            i && (this.viewId = i)
        }
        async create(...e) {
          throw new n.n()
        }
        async read(e = {}) {
          throw new n.n()
        }
        async update(...e) {
          throw new n.n()
        }
        async delete(...e) {
          throw new n.n()
        }
        async query(e, t, i = {}) {
          if (!this.getViewId())
            throw new o.SN('Cannot read Attachments, no model view configured')
          return this.client.query(e, t, i)
        }
        async mutate(e, t, i) {
          const { readonly: n } = this.config
          if (n)
            throw new o.pp(
              'Cannot write Attachments, model is in read-only mode'
            )
          if (!this.getViewId())
            throw new o.SN('Cannot write Attachments, no model view configured')
          return this.client.mutate(e, t, i)
        }
        getViewId() {
          return (
            this.viewId ||
            MaasAttachmentsStore.currentViewId ||
            MaasAttachmentsStore.baseViewId
          )
        }
        static setCurrentViewId(e) {
          MaasAttachmentsStore.currentViewId = e
        }
        static setBaseViewId(e) {
          MaasAttachmentsStore.baseViewId = e
        }
      }
      ;(MaasAttachmentsStore.baseViewId = null),
        (MaasAttachmentsStore.currentViewId = null)
    },

    37339: (e, t, i) => {
      'use strict'
      i.r(t),
        i.d(t, {
          DataIntegrityMessage: () => o.Qq,
          DataPublishedMessage: () => o.zK,
          DataRevertedMessage: () => o.F1,
          DataSavedMessage: () => o.xj,
          DataType: () => s.g,
          GetUnpublishedDeletionsCommand: () => n.ff,
          InvalidViewError: () => r.SN,
          MaasAttachmentsStore: () => d.U,
          MdsStore: () => h.u,
          ModelViewType: () => s.XZ,
          PrefetchPolicy: () => s.hV,
          PublishCommand: () => n.R_,
          PublishError: () => r.gO,
          PublishErrorMessage: () => o.aT,
          ReadOnlyError: () => r.pp,
          RevertCommand: () => n.qz,
          RevertError: () => r.P8,
          RevertErrorMessage: () => o.Kx,
          SETTING_MDS_ENABLED: () => l.$,
          SaveCommand: () => n.VQ,
          SaveError: () => r.pd,
          SaveErrorMessage: () => o.dz,
          SetDefaultViewTypeCommand: () => n.dS,
          StorageAnalytics: () => StorageAnalytics,
          StorageData: () => c.Q,
          StorageError: () => r.AE,
          StorageProvider: () => s.Xq,
          TransactionPhase: () => s.Q,
          TransactionState: () => s.g7,
          default: () => u.F,
          getErrorCodeForDataType: () => r.DT
        })
      var n = i(50988),
        s = i(38420),
        r = i(49398),
        o = i(96781),
        a = i(61645)
      class StorageAnalytics {
        constructor() {
          this.handlers = [
            {
              msgType: o.Qq,
              func: (e, t) => {
                const { dataType: i, message: n, mockError: s } = t,
                  r = 'DataIntegrityError',
                  o = {
                    error_type: r,
                    error_dialog: 'none',
                    data_type: i,
                    exception: { message: `${r}: ${n}` },
                    mock_error: s
                  }
                e.track('error_displayed', o)
              }
            },
            {
              msgType: o.dz,
              func: (e, t) => {
                const { dataTypes: i, error: n } = t,
                  s = n.name || 'SaveError',
                  r = {
                    error_code: (0, a.UX)(n).join(', '),
                    error_type: s,
                    error_dialog: 'banner',
                    data_type: i ? i.join(', ') : '',
                    exception: {
                      message: `${s}: ${n.message}`,
                      stack: n.stack
                    },
                    mock_error: (0, a.Ad)(n)
                  }
                e.track('error_displayed', r)
              }
            },
            {
              msgType: o.Kx,
              func: (e, t) => {
                const { dataTypes: i, error: n } = t,
                  s = n.name || 'RevertError',
                  r = {
                    error_code: (0, a.UX)(n).join(', '),
                    error_type: s,
                    error_dialog: 'banner',
                    data_type: i ? i.join(', ') : '',
                    exception: {
                      message: `${n.name || s}: ${n.message}`,
                      stack: n.stack
                    },
                    mock_error: (0, a.Ad)(n)
                  }
                e.track('error_displayed', r)
              }
            },
            {
              msgType: o.aT,
              func: (e, t) => {
                const { dataTypes: i, error: n } = t,
                  s = n.name || 'PublishError',
                  r = {
                    error_code: (0, a.UX)(n).join(', '),
                    error_type: s,
                    error_dialog: 'banner',
                    data_type: i ? i.join(', ') : '',
                    exception: {
                      message: `${s}: ${n.message}`,
                      stack: n.stack
                    },
                    mock_error: (0, a.Ad)(n)
                  }
                e.track('error_displayed', r)
              }
            }
          ]
        }
      }
      var l = i(61119),
        c = i(48602),
        h = i(94474),
        d = i(15585),
        u = i(26587)
    },





    23889: (e, t, i) => {
      'use strict'
      i.r(t), i.d(t, { default: () => SweepViewDataModule })
      var n = i(47724),
        s = i(75892),
        r = i(65379),
        o = i(95586),
        a = i(35597),
        l = i(76896),
        c = i(27326),
        h = i(8150),
        d = i(91302)
      class SweepViewDataModule extends n.Y {
        constructor() {
          super(...arguments),
            (this.name = 'sweep-viewdata'),
            (this.selectionEnabled = !0),
            (this.nonPanoCurrentPuckVisible = !1),
            (this.sweepMap = {}),
            (this.sweepIdList = []),
            (this.enableSweepSelection = async (e) => {
              this.selectionEnabled = !0
            }),
            (this.disableSweepSelection = async (e) => {
              this.selectionEnabled = !1
            }),
            (this.toggleCurrentPuck = async (e) => {
              ;(this.nonPanoCurrentPuckVisible = e.visible),
                this.updateVisibility(this.viewData.data.currentSweep)
            }),
            (this.onSweepSelectCommand = async (e) => {
              this.selectionEnabled &&
                this.viewData.modifySelectAnimation(
                  e.id,
                  e.selected,
                  e.duration
                )
            }),
            (this.onSweepHoverCommand = async (e) => {
              this.viewData.modifySelectAnimation(e.id, e.hovered, e.duration)
            }),
            (this.updateVisibility = async (e) => {
              if (this.viewmodeData.isInside()) {
                if (e) {
                  const t = this.viewData.getSweep(e).neighbours
                  this.viewData.iterate((e) => {
                    const i =
                      this.viewData.getSweepVisibility(e) &&
                      -1 !== t.indexOf(e.id)
                    this.viewData.setVisible(e.id, i)
                  }),
                    this.viewData.setVisible(e, !1)
                }
              } else
                this.viewData.iterate((e) => {
                  this.viewData.setVisible(
                    e.id,
                    this.floorsViewData.isCurrentOrAllFloors(e.floorId)
                  )
                }),
                  e &&
                    this.viewData.setVisible(e, this.nonPanoCurrentPuckVisible)
            })
        }
        async init(e, t) {
          ;(this.data = await t.market.waitForData(s.Z)),
            (this.viewData = t.market.tryGetData(r.D) || new r.D(this.data)),
            t.market.register(this, r.D, this.viewData),
            this.bindings.push(
              t.commandBinder.addBinding(o.iF, this.onSweepSelectCommand),
              t.commandBinder.addBinding(o.kR, this.onSweepHoverCommand),
              t.commandBinder.addBinding(o.zd, this.enableSweepSelection),
              t.commandBinder.addBinding(o.ZD, this.disableSweepSelection),
              t.commandBinder.addBinding(o.e9, this.toggleCurrentPuck),
              this.data.onChanged(() => this.viewData.updateViewData()),
              t.msgBus.subscribe(d.sY, () => this.viewData.updateViewData())
            ),
            (this.viewmodeData = await t.market.waitForData(a.O)),
            (this.floorsViewData = await t.market.waitForData(c.c)),
            this.bindings.push(
              this.data.onPropertyChanged(
                'currentSweep',
                this.updateVisibility
              ),
              t.subscribe(l.P, () =>
                this.updateVisibility(this.viewData.data.currentSweep)
              ),
              t.subscribe(h.bS, () =>
                this.updateVisibility(this.viewData.data.currentSweep)
              ),
              this.viewmodeData.makeModeChangeSubscription(() =>
                this.updateVisibility(this.viewData.data.currentSweep)
              )
            ),
            this.updateVisibility(this.viewData.data.currentSweep)
        }
        onUpdate(e) {
          this.viewData.updateAnimations(e)
        }
      }
    },



























    97807: (e, t, i) => {
      'use strict'
      var n
      i.d(t, {
        a_: () => OEmbedConsumer,
        t1: () => OEmbedLinkError,
        HF: () => OEmbedProviderError,
        ht: () => n
      }),
        (function (e) {
          ;(e.PHOTO = 'photo'),
            (e.VIDEO = 'video'),
            (e.LINK = 'link'),
            (e.RICH = 'rich')
        })(n || (n = {}))
      class OEmbedConsumerError extends Error {
        constructor(e, t, i) {
          super(e),
            (this.status = t),
            (this.type = i),
            console.warn(e),
            Error.captureStackTrace &&
              Error.captureStackTrace(this, OEmbedConsumerError)
        }
      }
      class OEmbedProviderError extends OEmbedConsumerError {
        constructor(e = 'unknown provider') {
          super(
            `Content from OEmbed provider ${e} is not currently not supported`,
            200,
            'OEmbedProvider'
          )
        }
      }
      class OEmbedLinkError extends OEmbedConsumerError {
        constructor(e = 'unknown provider') {
          super(
            `Content from ${e} is type "link", which Link content is not currently supported`,
            200,
            'OEmbedLink'
          )
        }
      }
      function s(e) {
        const t = Math.max(window.screen.height, window.screen.width)
        return {
          queryParams: new URLSearchParams({
            maxWidth: `${t}`,
            maxHeight: `${t}`,
            url: e
          }),
          headers: { responseType: 'json' }
        }
      }
      const r = /^https:\/\/www.instagram.com/
      const o = /^https:\/\/www.facebook.com/,
        a =
          /^https:\/\/www.facebook.com\/(.*\/)?(posts\/|activity\/|photo\.php|photos\/|permalink\.php|media\/set|questions\/|notes\/)/,
        l = /^https:\/\/www.facebook.com\/(video\.php|.*\/videos\/)/
      async function c(e, t, i, n) {
        const { queryParams: r, headers: o } = s(e)
        i && n && r.append('access_token', `${i}|${n}`)
        const c = (function (e) {
            return a.test(e)
              ? 'https://graph.facebook.com/v10.0/oembed_post'
              : l.test(e)
              ? 'https://graph.facebook.com/v10.0/oembed_video'
              : 'https://graph.facebook.com/v10.0/oembed_page'
          })(e),
          h = new URL(`${c}?${r.toString()}`)
        try {
          return await t.get(h.toString(), o)
        } catch (e) {
          const t = e
          throw new OEmbedConsumerError(
            t.error.message,
            t.status_code,
            t.error.type
          )
        }
      }
      const h = {
        behance: !1,
        dailymotion: !0,
        facebook: !1,
        flickr: !0,
        giphy: !0,
        instagram: !1,
        linkedin: !1,
        matterport: !0,
        mixcloud: !1,
        pinterest: !1,
        reddit: !1,
        soundcloud: !0,
        sketchfab: !0,
        spotify: !0,
        tenor: !0,
        tiktok: !1,
        twitter: !1,
        tumblr: !0,
        vimeo: !0,
        youtube: !0
      }
      class OEmbedConsumer {
        constructor(e) {
          ;(this.cache = {}), Object.assign(this, e)
        }
        async getOEmbedData(e) {
          if (this.cache[e]) return this.validate(this.cache[e])
          const t = await this.requestOEmbedData(e)
          return (this.cache[e] = t), this.validate(t)
        }
        async requestOEmbedData(e) {
          let t
          return (
            (t = (function (e) {
              return r.test(e)
            })(e)
              ? await (async function (e, t, i, n) {
                  const { queryParams: r, headers: o } = s(e)
                  i && n && r.append('access_token', `${i}|${n}`)
                  const a = new URL(
                    `https://graph.facebook.com/v10.0/instagram_oembed?${r.toString()}`
                  )
                  try {
                    return await t.get(a.toString(), o)
                  } catch (e) {
                    const t = e
                    throw new OEmbedConsumerError(
                      t.error.message,
                      t.status_code,
                      t.error.type
                    )
                  }
                })(
                  e,
                  this.queue,
                  this.instagramAppId,
                  this.instagramClientToken
                )
              : (function (e) {
                  return o.test(e)
                })(e)
              ? await c(
                  e,
                  this.queue,
                  this.instagramAppId,
                  this.instagramClientToken
                )
              : await (async function (e, t, i) {
                  const { queryParams: n, headers: r } = s(e)
                  i && n.append('key', i)
                  const o = new URL(
                    `https://api.embed.ly/1/oembed?${n.toString()}`
                  )
                  try {
                    return await t.get(o.toString(), r)
                  } catch (e) {
                    const t = e
                    throw new OEmbedConsumerError(
                      t.error_message,
                      t.status_code,
                      t.type
                    )
                  }
                })(e, this.queue, this.embedlyKey)),
            t
          )
        }
        clearCache() {
          this.cache = {}
        }
        validate(e) {
          if (
            !((e) => {
              const { provider_name: t, type: i } = e,
                s = void 0 === t ? void 0 : h[t.toLowerCase()]
              return (void 0 === s && i === n.PHOTO) || !!s
            })(e)
          )
            throw new OEmbedProviderError(e.provider_name)
          if (e.type === n.LINK) throw new OEmbedLinkError(e.provider_name)
          return e
        }
      }
    },
    24800: (e, t, i) => {
      'use strict'
      var n
      i(2815)
      !(function (e) {
        e[(e.POSTMESSAGE = 1)] = 'POSTMESSAGE'
      })(n || (n = {}))
    },



    62502: (e) => {
      'use strict'
      e.exports = {
        isString: function (e) {
          return 'string' == typeof e
        },
        isObject: function (e) {
          return 'object' == typeof e && null !== e
        },
        isNull: function (e) {
          return null === e
        },
        isNullOrUndefined: function (e) {
          return null == e
        }
      }
    },
    42473: (e) => {
      'use strict'
      var t = function () {}
      e.exports = t
    },

    49329: (e, t, i) => {
      e.exports = i(60516).Observable
    },
    60516: (e, t) => {
      'use strict'
      function i(e, t) {
        if (!(e instanceof t))
          throw new TypeError('Cannot call a class as a function')
      }
      function n(e, t) {
        for (var i = 0; i < t.length; i++) {
          var n = t[i]
          ;(n.enumerable = n.enumerable || !1),
            (n.configurable = !0),
            'value' in n && (n.writable = !0),
            Object.defineProperty(e, n.key, n)
        }
      }
      function s(e, t, i) {
        return t && n(e.prototype, t), i && n(e, i), e
      }
      t.Observable = void 0
      var r = function () {
          return 'function' == typeof Symbol
        },
        o = function (e) {
          return r() && Boolean(Symbol[e])
        },
        a = function (e) {
          return o(e) ? Symbol[e] : '@@' + e
        }
      r() && !o('observable') && (Symbol.observable = Symbol('observable'))
      var l = a('iterator'),
        c = a('observable'),
        h = a('species')
      function d(e, t) {
        var i = e[t]
        if (null != i) {
          if ('function' != typeof i)
            throw new TypeError(i + ' is not a function')
          return i
        }
      }
      function u(e) {
        var t = e.constructor
        return (
          void 0 !== t && null === (t = t[h]) && (t = void 0),
          void 0 !== t ? t : T
        )
      }
      function p(e) {
        return e instanceof T
      }
      function m(e) {
        m.log
          ? m.log(e)
          : setTimeout(function () {
              throw e
            })
      }
      function g(e) {
        Promise.resolve().then(function () {
          try {
            e()
          } catch (e) {
            m(e)
          }
        })
      }
      function f(e) {
        var t = e._cleanup
        if (void 0 !== t && ((e._cleanup = void 0), t))
          try {
            if ('function' == typeof t) t()
            else {
              var i = d(t, 'unsubscribe')
              i && i.call(t)
            }
          } catch (e) {
            m(e)
          }
      }
      function v(e) {
        ;(e._observer = void 0), (e._queue = void 0), (e._state = 'closed')
      }
      function y(e, t, i) {
        e._state = 'running'
        var n = e._observer
        try {
          var s = d(n, t)
          switch (t) {
            case 'next':
              s && s.call(n, i)
              break
            case 'error':
              if ((v(e), !s)) throw i
              s.call(n, i)
              break
            case 'complete':
              v(e), s && s.call(n)
          }
        } catch (e) {
          m(e)
        }
        'closed' === e._state
          ? f(e)
          : 'running' === e._state && (e._state = 'ready')
      }
      function b(e, t, i) {
        if ('closed' !== e._state) {
          if ('buffering' !== e._state)
            return 'ready' !== e._state
              ? ((e._state = 'buffering'),
                (e._queue = [{ type: t, value: i }]),
                void g(function () {
                  return (function (e) {
                    var t = e._queue
                    if (t) {
                      ;(e._queue = void 0), (e._state = 'ready')
                      for (
                        var i = 0;
                        i < t.length &&
                        (y(e, t[i].type, t[i].value), 'closed' !== e._state);
                        ++i
                      );
                    }
                  })(e)
                }))
              : void y(e, t, i)
          e._queue.push({ type: t, value: i })
        }
      }
      var S = (function () {
          function e(t, n) {
            i(this, e),
              (this._cleanup = void 0),
              (this._observer = t),
              (this._queue = void 0),
              (this._state = 'initializing')
            var s = new E(this)
            try {
              this._cleanup = n.call(void 0, s)
            } catch (e) {
              s.error(e)
            }
            'initializing' === this._state && (this._state = 'ready')
          }
          return (
            s(e, [
              {
                key: 'unsubscribe',
                value: function () {
                  'closed' !== this._state && (v(this), f(this))
                }
              },
              {
                key: 'closed',
                get: function () {
                  return 'closed' === this._state
                }
              }
            ]),
            e
          )
        })(),
        E = (function () {
          function e(t) {
            i(this, e), (this._subscription = t)
          }
          return (
            s(e, [
              {
                key: 'next',
                value: function (e) {
                  b(this._subscription, 'next', e)
                }
              },
              {
                key: 'error',
                value: function (e) {
                  b(this._subscription, 'error', e)
                }
              },
              {
                key: 'complete',
                value: function () {
                  b(this._subscription, 'complete')
                }
              },
              {
                key: 'closed',
                get: function () {
                  return 'closed' === this._subscription._state
                }
              }
            ]),
            e
          )
        })(),
        T = (function () {
          function e(t) {
            if ((i(this, e), !(this instanceof e)))
              throw new TypeError('Observable cannot be called as a function')
            if ('function' != typeof t)
              throw new TypeError('Observable initializer must be a function')
            this._subscriber = t
          }
          return (
            s(
              e,
              [
                {
                  key: 'subscribe',
                  value: function (e) {
                    return (
                      ('object' == typeof e && null !== e) ||
                        (e = {
                          next: e,
                          error: arguments[1],
                          complete: arguments[2]
                        }),
                      new S(e, this._subscriber)
                    )
                  }
                },
                {
                  key: 'forEach',
                  value: function (e) {
                    var t = this
                    return new Promise(function (i, n) {
                      if ('function' == typeof e)
                        var s = t.subscribe({
                          next: function (t) {
                            try {
                              e(t, r)
                            } catch (e) {
                              n(e), s.unsubscribe()
                            }
                          },
                          error: n,
                          complete: i
                        })
                      else n(new TypeError(e + ' is not a function'))
                      function r() {
                        s.unsubscribe(), i()
                      }
                    })
                  }
                },
                {
                  key: 'map',
                  value: function (e) {
                    var t = this
                    if ('function' != typeof e)
                      throw new TypeError(e + ' is not a function')
                    return new (u(this))(function (i) {
                      return t.subscribe({
                        next: function (t) {
                          try {
                            t = e(t)
                          } catch (e) {
                            return i.error(e)
                          }
                          i.next(t)
                        },
                        error: function (e) {
                          i.error(e)
                        },
                        complete: function () {
                          i.complete()
                        }
                      })
                    })
                  }
                },
                {
                  key: 'filter',
                  value: function (e) {
                    var t = this
                    if ('function' != typeof e)
                      throw new TypeError(e + ' is not a function')
                    return new (u(this))(function (i) {
                      return t.subscribe({
                        next: function (t) {
                          try {
                            if (!e(t)) return
                          } catch (e) {
                            return i.error(e)
                          }
                          i.next(t)
                        },
                        error: function (e) {
                          i.error(e)
                        },
                        complete: function () {
                          i.complete()
                        }
                      })
                    })
                  }
                },
                {
                  key: 'reduce',
                  value: function (e) {
                    var t = this
                    if ('function' != typeof e)
                      throw new TypeError(e + ' is not a function')
                    var i = u(this),
                      n = arguments.length > 1,
                      s = !1,
                      r = arguments[1],
                      o = r
                    return new i(function (i) {
                      return t.subscribe({
                        next: function (t) {
                          var r = !s
                          if (((s = !0), !r || n))
                            try {
                              o = e(o, t)
                            } catch (e) {
                              return i.error(e)
                            }
                          else o = t
                        },
                        error: function (e) {
                          i.error(e)
                        },
                        complete: function () {
                          if (!s && !n)
                            return i.error(
                              new TypeError('Cannot reduce an empty sequence')
                            )
                          i.next(o), i.complete()
                        }
                      })
                    })
                  }
                },
                {
                  key: 'concat',
                  value: function () {
                    for (
                      var e = this,
                        t = arguments.length,
                        i = new Array(t),
                        n = 0;
                      n < t;
                      n++
                    )
                      i[n] = arguments[n]
                    var s = u(this)
                    return new s(function (t) {
                      var n,
                        r = 0
                      return (
                        (function e(o) {
                          n = o.subscribe({
                            next: function (e) {
                              t.next(e)
                            },
                            error: function (e) {
                              t.error(e)
                            },
                            complete: function () {
                              r === i.length
                                ? ((n = void 0), t.complete())
                                : e(s.from(i[r++]))
                            }
                          })
                        })(e),
                        function () {
                          n && (n.unsubscribe(), (n = void 0))
                        }
                      )
                    })
                  }
                },
                {
                  key: 'flatMap',
                  value: function (e) {
                    var t = this
                    if ('function' != typeof e)
                      throw new TypeError(e + ' is not a function')
                    var i = u(this)
                    return new i(function (n) {
                      var s = [],
                        r = t.subscribe({
                          next: function (t) {
                            if (e)
                              try {
                                t = e(t)
                              } catch (e) {
                                return n.error(e)
                              }
                            var r = i.from(t).subscribe({
                              next: function (e) {
                                n.next(e)
                              },
                              error: function (e) {
                                n.error(e)
                              },
                              complete: function () {
                                var e = s.indexOf(r)
                                e >= 0 && s.splice(e, 1), o()
                              }
                            })
                            s.push(r)
                          },
                          error: function (e) {
                            n.error(e)
                          },
                          complete: function () {
                            o()
                          }
                        })
                      function o() {
                        r.closed && 0 === s.length && n.complete()
                      }
                      return function () {
                        s.forEach(function (e) {
                          return e.unsubscribe()
                        }),
                          r.unsubscribe()
                      }
                    })
                  }
                },
                {
                  key: c,
                  value: function () {
                    return this
                  }
                }
              ],
              [
                {
                  key: 'from',
                  value: function (t) {
                    var i = 'function' == typeof this ? this : e
                    if (null == t) throw new TypeError(t + ' is not an object')
                    var n = d(t, c)
                    if (n) {
                      var s = n.call(t)
                      if (Object(s) !== s)
                        throw new TypeError(s + ' is not an object')
                      return p(s) && s.constructor === i
                        ? s
                        : new i(function (e) {
                            return s.subscribe(e)
                          })
                    }
                    if (o('iterator') && (n = d(t, l)))
                      return new i(function (e) {
                        g(function () {
                          if (!e.closed) {
                            var i = !0,
                              s = !1,
                              r = void 0
                            try {
                              for (
                                var o, a = n.call(t)[Symbol.iterator]();
                                !(i = (o = a.next()).done);
                                i = !0
                              ) {
                                var l = o.value
                                if ((e.next(l), e.closed)) return
                              }
                            } catch (e) {
                              ;(s = !0), (r = e)
                            } finally {
                              try {
                                i || null == a.return || a.return()
                              } finally {
                                if (s) throw r
                              }
                            }
                            e.complete()
                          }
                        })
                      })
                    if (Array.isArray(t))
                      return new i(function (e) {
                        g(function () {
                          if (!e.closed) {
                            for (var i = 0; i < t.length; ++i)
                              if ((e.next(t[i]), e.closed)) return
                            e.complete()
                          }
                        })
                      })
                    throw new TypeError(t + ' is not observable')
                  }
                },
                {
                  key: 'of',
                  value: function () {
                    for (
                      var t = arguments.length, i = new Array(t), n = 0;
                      n < t;
                      n++
                    )
                      i[n] = arguments[n]
                    var s = 'function' == typeof this ? this : e
                    return new s(function (e) {
                      g(function () {
                        if (!e.closed) {
                          for (var t = 0; t < i.length; ++t)
                            if ((e.next(i[t]), e.closed)) return
                          e.complete()
                        }
                      })
                    })
                  }
                },
                {
                  key: h,
                  get: function () {
                    return this
                  }
                }
              ]
            ),
            e
          )
        })()
      ;(t.Observable = T),
        r() &&
          Object.defineProperty(T, Symbol('extensions'), {
            value: { symbol: c, hostReportError: m },
            configurable: !0
          })
    },

    98443: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'FileAttachments' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'fileAttachmentsByModelId' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'results' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'FileAttachmentDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteExternalAttachment' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'attachmentId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'parentType' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ParentType' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteExternalAttachment' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'attachmentId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'attachmentId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'parentType' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'parentType' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchExternalAttachment' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'attachmentId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: {
                      kind: 'Name',
                      value: 'ExternalAttachmentDetails'
                    }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchExternalAttachment' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'attachmentId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'attachmentId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: {
                          kind: 'Name',
                          value: 'ExternalAttachmentDetails'
                        },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteFileAttachment' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'id' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteFileAttachment' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'id' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'UploadFileAttachmentToModel' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'organizationId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'contents' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'FileUpload' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'filename' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'String' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: {
                    kind: 'Name',
                    value: 'uploadFileAttachmentToModel'
                  },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'organizationId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'organizationId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'contents' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'contents' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'filename' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'filename' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: {
                          kind: 'Name',
                          value: 'FileAttachmentDetails'
                        },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'FileAttachmentDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'FileAttachment' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'filename' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'url' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'validUntil' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'bytes' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'mimeType' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'InlineFragment',
                  typeCondition: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ImageFileAttachment' }
                  },
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'imageWidth' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'imageHeight' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'ExternalAttachmentDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'ExternalAttachment' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'thumbnailUrl' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'url' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'mediaType' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'width' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'height' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'category' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'parentDetails' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'type' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'parent' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 1503 }
      }
      t.loc.source = {
        body: '\n# read all attachments for the specified model\nquery FileAttachments($modelId: ID!) {\n  fileAttachmentsByModelId(modelId: $modelId) {\n    results { ...FileAttachmentDetails }\n  }\n}\n\n# Deletes a single external attachment\nmutation DeleteExternalAttachment($modelId: ID!, $attachmentId: ID!, $parentType: ParentType!) {\n  deleteExternalAttachment(modelId: $modelId, , attachmentId: $attachmentId, parentType: $parentType)\n}\n\n# Update a single external attachment\nmutation PatchExternalAttachment($modelId: ID!, $attachmentId: ID!, $data: ExternalAttachmentDetails!) {\n  patchExternalAttachment(modelId: $modelId, , attachmentId: $attachmentId, patch: $data) {\n    ...ExternalAttachmentDetails\n  }\n}\n\nmutation DeleteFileAttachment($id: ID!) {\n  deleteFileAttachment(id: $id)\n}\n\nmutation UploadFileAttachmentToModel($organizationId: ID!, $modelId: ID!, $contents: FileUpload!, $filename: String!) {\n  uploadFileAttachmentToModel(organizationId: $organizationId, modelId: $modelId,\n                              contents: $contents, filename: $filename) {\n    ...FileAttachmentDetails\n  }\n}\n\nfragment FileAttachmentDetails on FileAttachment {\n  id\n  created\n  filename\n  url\n  validUntil\n  bytes\n  mimeType\n  ...on ImageFileAttachment {\n      imageWidth\n      imageHeight\n  }\n}\n\n# common External Attachment properties\nfragment ExternalAttachmentDetails on ExternalAttachment {\n  id\n  created\n  modified\n  thumbnailUrl\n  url\n  mediaType\n  width\n  height\n  category\n  parentDetails { type, parent { id } }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.FileAttachments = r(t, 'FileAttachments')),
        (e.exports.DeleteExternalAttachment = r(t, 'DeleteExternalAttachment')),
        (e.exports.PatchExternalAttachment = r(t, 'PatchExternalAttachment')),
        (e.exports.DeleteFileAttachment = r(t, 'DeleteFileAttachment')),
        (e.exports.UploadFileAttachmentToModel = r(
          t,
          'UploadFileAttachmentToModel'
        )),
        (e.exports.FileAttachmentDetails = r(t, 'FileAttachmentDetails')),
        (e.exports.ExternalAttachmentDetails = r(
          t,
          'ExternalAttachmentDetails'
        ))
    },
    70129: (e, t, i) => {
      var n = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'AddCommentAttachments' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'commentId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'externalAttachments' }
                },
                type: {
                  kind: 'ListType',
                  type: {
                    kind: 'NonNullType',
                    type: {
                      kind: 'NamedType',
                      name: {
                        kind: 'Name',
                        value: 'ExternalAttachmentDetails'
                      }
                    }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'fileAttachments' }
                },
                type: {
                  kind: 'ListType',
                  type: {
                    kind: 'NonNullType',
                    type: {
                      kind: 'NamedType',
                      name: { kind: 'Name', value: 'ID' }
                    }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'addCommentAttachments' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'commentId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'commentId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'externalAttachments' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'externalAttachments' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'fileAttachments' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'fileAttachments' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'CommentAttachments' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteComment' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'commentId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteComment' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'commentId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'commentId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchComment' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'commentId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'CommentPatch' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchComment' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'commentId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'commentId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'CommentDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'CommentDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Comment' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'edited' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'text' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'createdBy' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'firstName' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'lastName' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'email' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'externalAttachments' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: {
                          kind: 'Name',
                          value: 'ExternalAttachmentDetails'
                        },
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'fileAttachments' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: {
                          kind: 'Name',
                          value: 'FileAttachmentDetails'
                        },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'CommentAttachments' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Comment' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'externalAttachments' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: {
                          kind: 'Name',
                          value: 'ExternalAttachmentDetails'
                        },
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'fileAttachments' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: {
                          kind: 'Name',
                          value: 'FileAttachmentDetails'
                        },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 1213 }
      }
      n.loc.source = {
        body: '#import "./attachments.gql"\n\n# Add comment attachments\nmutation AddCommentAttachments($modelId: ID!, $commentId: ID!, $externalAttachments: [ExternalAttachmentDetails!], $fileAttachments: [ID!]) {\n  addCommentAttachments(modelId: $modelId, , commentId: $commentId,\n                        externalAttachments: $externalAttachments,\n                        fileAttachments: $fileAttachments) {\n    ...CommentAttachments\n  }\n}\n\n# Deletes a single comment\nmutation DeleteComment ($modelId: ID!, $commentId: ID!) {\n  deleteComment(modelId: $modelId, , commentId: $commentId)\n}\n\n# Update a single comment\nmutation PatchComment($modelId: ID!, $commentId: ID!, $data: CommentPatch!) {\n  patchComment(modelId: $modelId, , commentId: $commentId, patch: $data) {\n    ...CommentDetails\n  }\n}\n\n# common Comment properties\nfragment CommentDetails on Comment {\n  id\n  created\n  modified\n  edited\n  text\n  createdBy { id, firstName, lastName, email }\n  externalAttachments { ...ExternalAttachmentDetails }\n  fileAttachments { ...FileAttachmentDetails }\n}\n\n# Attachments on a Comment\nfragment CommentAttachments on Comment {\n  externalAttachments { ...ExternalAttachmentDetails }\n  fileAttachments { ...FileAttachmentDetails }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      var s = {}
      function r(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var i = e.type
          'NamedType' === i.kind && t.add(i.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            r(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              r(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              r(e, t)
            })
      }
      n.definitions = n.definitions.concat(
        i(98443).definitions.filter(function (e) {
          if ('FragmentDefinition' !== e.kind) return !0
          var t = e.name.value
          return !s[t] && ((s[t] = !0), !0)
        })
      )
      var o = {}
      function a(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function l(e, t) {
        var i = { kind: e.kind, definitions: [a(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var n = o[t] || new Set(),
          s = new Set(),
          r = new Set()
        for (
          n.forEach(function (e) {
            r.add(e)
          });
          r.size > 0;

        ) {
          var l = r
          ;(r = new Set()),
            l.forEach(function (e) {
              s.has(e) ||
                (s.add(e),
                (o[e] || new Set()).forEach(function (e) {
                  r.add(e)
                }))
            })
        }
        return (
          s.forEach(function (t) {
            var n = a(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      n.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          r(e, t), (o[e.name.value] = t)
        }
      }),
        (e.exports = n),
        (e.exports.AddCommentAttachments = l(n, 'AddCommentAttachments')),
        (e.exports.DeleteComment = l(n, 'DeleteComment')),
        (e.exports.PatchComment = l(n, 'PatchComment')),
        (e.exports.CommentDetails = l(n, 'CommentDetails')),
        (e.exports.CommentAttachments = l(n, 'CommentAttachments'))
    },
    81047: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetFloors' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'floors' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'FloorDetails' },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'FloorDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'ModelFloor' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'meshId' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'classification' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'label' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'sequence' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'dimensions' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'areaFloor' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchFloor' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'floorId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'FloorPatch' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchFloor' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'floorId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'floorId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 380 }
      }
      t.loc.source = {
        body: 'query GetFloors($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    floors { ...FloorDetails }\n  }\n}\n\nfragment FloorDetails on ModelFloor {\n  id\n  meshId\n  classification\n  label\n  sequence\n  dimensions {\n    areaFloor\n  }\n}\n\nmutation PatchFloor($modelId: ID!, $floorId: ID!, $data: FloorPatch!) {\n  patchFloor(modelId: $modelId, , floorId: $floorId, patch: $data) {\n    id\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetFloors = r(t, 'GetFloors')),
        (e.exports.FloorDetails = r(t, 'FloorDetails')),
        (e.exports.PatchFloor = r(t, 'PatchFloor'))
    },
    95162: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetLabels' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'includeDisabled' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'Boolean' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'labels' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'includeDisabled' },
                            value: {
                              kind: 'Variable',
                              name: {
                                kind: 'Name',
                                value: 'includeDisabled'
                              }
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'LabelDetails' },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'AddLabel' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'labelId' }
                },
                type: {
                  kind: 'NamedType',
                  name: { kind: 'Name', value: 'ID' }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'LabelDetails' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'addLabel' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'labelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'labelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'label' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'LabelDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchLabel' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'labelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'LabelPatch' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchLabel' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'labelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'labelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'LabelDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteLabel' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'labelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteLabel' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'labelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'labelId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'LabelDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Label' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'position' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'x' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'y' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'z' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floor' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'room' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'label' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'enabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 929 }
      }
      t.loc.source = {
        body: '# Read all labels for the given model\nquery GetLabels($modelId: ID!, $includeDisabled: Boolean!) {\n  model(id: $modelId) {\n    id,\n    labels (includeDisabled: $includeDisabled) {\n      ...LabelDetails\n    }\n  }\n}\n\n# Create a new label\nmutation AddLabel ($modelId: ID!, $labelId: ID, $data: LabelDetails!) {\n  addLabel(modelId: $modelId, labelId: $labelId, label: $data) {\n    ...LabelDetails\n  }\n}\n\n# Update a single label\nmutation PatchLabel ($modelId: ID!, $labelId: ID!, $data: LabelPatch!) {\n  patchLabel(modelId: $modelId, , labelId: $labelId, patch: $data) {\n    ...LabelDetails\n  }\n}\n\n# Deletes a single label\nmutation DeleteLabel ($modelId: ID!, ,$labelId: ID!) {\n  deleteLabel(modelId: $modelId, ,labelId: $labelId)\n}\n\n# Default Label properties used by Showcase and Workshop\nfragment LabelDetails on Label {\n  id\n  position { x y z }\n  floor { id meshId }\n  room { id meshId }\n  label\n  enabled\n  created\n  modified\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetLabels = r(t, 'GetLabels')),
        (e.exports.AddLabel = r(t, 'AddLabel')),
        (e.exports.PatchLabel = r(t, 'PatchLabel')),
        (e.exports.DeleteLabel = r(t, 'DeleteLabel')),
        (e.exports.LabelDetails = r(t, 'LabelDetails'))
    },
    6850: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetMattertags' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'includeDisabled' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'Boolean' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'mattertags' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'includeDisabled' },
                            value: {
                              kind: 'Variable',
                              name: {
                                kind: 'Name',
                                value: 'includeDisabled'
                              }
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'MattertagDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'AddMattertag' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'mattertagId' }
                },
                type: {
                  kind: 'NamedType',
                  name: { kind: 'Name', value: 'ID' }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'MattertagDetails' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'addMattertag' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'mattertagId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'mattertagId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'mattertag' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'created' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'modified' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteMattertag' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'mattertagId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteMattertag' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'mattertagId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'mattertagId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'MattertagDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Mattertag' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'label' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'description' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'color' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'enabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floor' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'room' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'anchorPosition' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'x' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'y' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'z' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'stemEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'stemNormal' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'x' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'y' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'z' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'stemLength' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'media' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'mediaType' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 930 }
      }
      t.loc.source = {
        body: '# read all mattertags for the specified model\nquery GetMattertags($modelId: ID!, $includeDisabled: Boolean!) {\n  model(id: $modelId) {\n    id,\n    mattertags(includeDisabled: $includeDisabled) {\n      ...MattertagDetails\n    }\n  }\n}\n\n# add a new mattertag\nmutation AddMattertag($modelId:ID!, $mattertagId: ID, $data: MattertagDetails!) {\n  addMattertag(modelId: $modelId, mattertagId: $mattertagId, mattertag: $data) {\n    id\n    created\n    modified\n  }\n}\n\n# delete an existing tag by id\nmutation DeleteMattertag($modelId: ID!, $mattertagId: ID!) {\n  deleteMattertag(modelId: $modelId, mattertagId: $mattertagId)\n}\n\n# common Mattertag properties used by Showcase and Workshop\nfragment MattertagDetails on Mattertag {\n  id\n  label\n  description\n  color\n  enabled\n  floor { id, meshId }\n  room { id, meshId }\n  anchorPosition { x y z }\n  stemEnabled\n  stemNormal { x, y, z }\n  stemLength\n  media\n  mediaType\n  created\n  modified\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetMattertags = r(t, 'GetMattertags')),
        (e.exports.AddMattertag = r(t, 'AddMattertag')),
        (e.exports.DeleteMattertag = r(t, 'DeleteMattertag')),
        (e.exports.MattertagDetails = r(t, 'MattertagDetails'))
    },
    37946: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetMeasurements' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'includeDisabled' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'Boolean' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'measurementPaths' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'includeDisabled' },
                            value: {
                              kind: 'Variable',
                              name: {
                                kind: 'Name',
                                value: 'includeDisabled'
                              }
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'MeasurementDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'AddMeasurement' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'MeasurementPathDetails' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'addMeasurementPath' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'path' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchMeasurement' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'pathId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'MeasurementPathPatch' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchMeasurementPath' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'pathId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'pathId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteMeasurement' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'pathId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteMeasurementPath' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'pathId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'pathId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'MeasurementDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'MeasurementPath' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'lineType' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'label' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'enabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'points' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'position' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'x' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'y' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'z' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'floor' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'meshId' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'room' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'meshId' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 835 }
      }
      t.loc.source = {
        body: '\nquery GetMeasurements($modelId: ID!, $includeDisabled: Boolean!) {\n  model(id: $modelId) {\n    id,\n    measurementPaths(includeDisabled: $includeDisabled) {\n      ...MeasurementDetails\n    }\n  }\n}\n\nmutation AddMeasurement($modelId: ID!, $data: MeasurementPathDetails!) {\n  addMeasurementPath(modelId: $modelId, , path: $data) {\n    id\n  }\n}\n\nmutation PatchMeasurement($modelId: ID!, $pathId: ID!, $data: MeasurementPathPatch!) {\n  patchMeasurementPath(modelId: $modelId, , pathId: $pathId, patch: $data) {\n    id\n  }\n}\n\nmutation DeleteMeasurement($modelId: ID!, $pathId: ID!) {\n  deleteMeasurementPath(modelId: $modelId, , pathId: $pathId)\n}\n\nfragment MeasurementDetails on MeasurementPath {\n  id\n  lineType\n  label\n  enabled\n  points {\n    position { x y z }\n    floor { id meshId }\n    room { id meshId }\n  }\n  created\n  modified\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetMeasurements = r(t, 'GetMeasurements')),
        (e.exports.AddMeasurement = r(t, 'AddMeasurement')),
        (e.exports.PatchMeasurement = r(t, 'PatchMeasurement')),
        (e.exports.DeleteMeasurement = r(t, 'DeleteMeasurement')),
        (e.exports.MeasurementDetails = r(t, 'MeasurementDetails'))
    },
    91985: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetModelOptions' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'publication' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'options' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'PublicationOptions'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'options' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'ModelOptions' },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetModelDetails' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'name' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'organization' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'visibility' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'image' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'ModelImage' },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'publication' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'PublicationDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'options' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'ModelOptions' },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'assets' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'meshes' },
                              arguments: [
                                {
                                  kind: 'Argument',
                                  name: { kind: 'Name', value: 'formats' },
                                  value: {
                                    kind: 'StringValue',
                                    value: 'dam',
                                    block: !1
                                  }
                                },
                                {
                                  kind: 'Argument',
                                  name: {
                                    kind: 'Name',
                                    value: 'resolutions'
                                  },
                                  value: {
                                    kind: 'ListValue',
                                    values: [
                                      {
                                        kind: 'StringValue',
                                        value: '50k',
                                        block: !1
                                      },
                                      {
                                        kind: 'StringValue',
                                        value: '500k',
                                        block: !1
                                      }
                                    ]
                                  }
                                },
                                {
                                  kind: 'Argument',
                                  name: {
                                    kind: 'Name',
                                    value: 'compressions'
                                  },
                                  value: { kind: 'EnumValue', value: 'none' }
                                }
                              ],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'MeshDetails'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'textures' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'TextureDetails'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchModel' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'patch' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ModelPatch' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchModel' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'patch' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'MeshDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Mesh' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'status' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'filename' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'format' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolution' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'url' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'validUntil' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'TextureDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Texture' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'status' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'format' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolution' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'quality' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'urlTemplate' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'validUntil' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'PublicationDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'ModelPublicationDetails' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'address' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'published' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'lastPublished' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'presentedBy' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'summary' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'externalUrl' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'contact' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'name' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'email' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'phoneNumber' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'ModelOptions' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'ModelOptions' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourButtonsEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'dollhouseEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'dollhouseLabelsEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floorplanEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floorSelectEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'labelsEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'highlightReelEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourFastTransitionsEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'backgroundColor' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'socialSharingEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourPanAngle' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourPanSpeed' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourPanDirection' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourTransitionSpeed' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourTransitionTime' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourZoomDuration' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tourDollhousePanSpeed' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'unitType' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'measurements' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'vrEnabled' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'PublicationOptions' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'ModelPublicationOptions' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'contactEmail' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'contactName' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'contactPhone' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modelName' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modelSummary' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'presentedBy' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'address' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'externalUrl' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'ModelImage' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Photo' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  alias: { kind: 'Name', value: 'thumbnailUrl' },
                  name: { kind: 'Name', value: 'resizeUrl' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'resolution' },
                      value: { kind: 'EnumValue', value: 'thumbnail' }
                    }
                  ],
                  directives: []
                },
                {
                  kind: 'Field',
                  alias: { kind: 'Name', value: 'presentationUrl' },
                  name: { kind: 'Name', value: 'resizeUrl' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'resolution' },
                      value: { kind: 'EnumValue', value: 'presentation' }
                    }
                  ],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'width' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'height' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 1888 }
      }
      t.loc.source = {
        body: 'query GetModelOptions($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    publication {\n      options { ...PublicationOptions }\n    }\n    options { ...ModelOptions }\n  }\n}\n\nquery GetModelDetails($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    name\n    organization\n    visibility\n    image { ...ModelImage }\n    publication { ...PublicationDetails }\n    options { ...ModelOptions }\n    assets {\n      meshes(formats: "dam", resolutions: ["50k", "500k"], compressions: none) { ...MeshDetails }\n      textures { ...TextureDetails }\n    }\n  }\n}\n\nmutation PatchModel($modelId: ID!, $patch: ModelPatch!) {\n  patchModel(id: $modelId, , patch: $patch) {\n    id\n  }\n}\n\nfragment MeshDetails on Mesh {\n  id\n  status\n  filename\n  format\n  resolution\n  url\n  validUntil\n}\n\nfragment TextureDetails on Texture {\n  id\n  status\n  format\n  resolution\n  quality\n  urlTemplate\n  validUntil\n}\n\nfragment PublicationDetails on ModelPublicationDetails {\n  address\n  published\n  lastPublished\n  presentedBy\n  summary\n  externalUrl\n  contact {\n    name\n    email\n    phoneNumber\n  }\n}\n\nfragment ModelOptions on ModelOptions {\n  tourButtonsEnabled\n  dollhouseEnabled\n  dollhouseLabelsEnabled\n  floorplanEnabled\n  floorSelectEnabled\n  labelsEnabled\n  highlightReelEnabled\n  tourFastTransitionsEnabled\n  backgroundColor\n  socialSharingEnabled\n  tourPanAngle\n  tourPanSpeed\n  tourPanDirection\n  tourTransitionSpeed\n  tourTransitionTime\n  tourZoomDuration\n  tourDollhousePanSpeed\n  unitType\n  measurements\n  vrEnabled\n  # disable until platform 21.9.2 release\n  # urlBrandingEnabled\n}\n\nfragment PublicationOptions on ModelPublicationOptions {\n  contactEmail\n  contactName\n  contactPhone\n  modelName\n  modelSummary\n  presentedBy\n  address\n  externalUrl\n}\n\nfragment ModelImage on Photo {\n  id\n  thumbnailUrl: resizeUrl(resolution: thumbnail)\n  presentationUrl: resizeUrl(resolution: presentation)\n  width\n  height\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetModelOptions = r(t, 'GetModelOptions')),
        (e.exports.GetModelDetails = r(t, 'GetModelDetails')),
        (e.exports.PatchModel = r(t, 'PatchModel')),
        (e.exports.MeshDetails = r(t, 'MeshDetails')),
        (e.exports.TextureDetails = r(t, 'TextureDetails')),
        (e.exports.PublicationDetails = r(t, 'PublicationDetails')),
        (e.exports.ModelOptions = r(t, 'ModelOptions')),
        (e.exports.PublicationOptions = r(t, 'PublicationOptions')),
        (e.exports.ModelImage = r(t, 'ModelImage'))
    },
    11764: (e, t, i) => {
      var n = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetNotes' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'ids' }
                },
                type: {
                  kind: 'ListType',
                  type: {
                    kind: 'NonNullType',
                    type: {
                      kind: 'NamedType',
                      name: { kind: 'Name', value: 'ID' }
                    }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'notes' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'ids' },
                            value: {
                              kind: 'Variable',
                              name: { kind: 'Name', value: 'ids' }
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'NoteDetails' },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'AddNote' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'NoteDetails' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'addNote' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'note' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'NoteDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'AddNoteComment' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'noteId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'CommentDetails' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'addNoteComment' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'noteId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'noteId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'comment' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'CommentDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeleteNote' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'noteId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deleteNote' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'noteId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'noteId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchNote' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'noteId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'data' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'NotePatch' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchNote' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'noteId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'noteId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'patch' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'data' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'NoteDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'ReopenNote' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'noteId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'reopenNote' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'noteId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'noteId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'ResolveNote' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'noteId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolveNote' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'noteId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'noteId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'NoteDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Note' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'createdBy' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'firstName' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'lastName' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'email' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'color' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'enabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floor' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'room' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'anchorPosition' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'x' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'y' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'z' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'stemEnabled' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'stemNormal' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'x' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'y' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'z' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'stemLength' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolution' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'lastCommentAt' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'comments' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'results' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'CommentDetails' },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 1499 }
      }
      n.loc.source = {
        body: '#import "./attachments.gql"\n#import "./comments.gql"\n\n# read all notes for the specified model\nquery GetNotes($modelId: ID!, $ids: [ID!]) {\n  model(id: $modelId) {\n    id\n    notes(ids: $ids) {\n      ...NoteDetails\n    }\n  }\n}\n\n# Create a new note\nmutation AddNote($modelId: ID!, $data: NoteDetails!) {\n  addNote(modelId: $modelId, , note: $data) {\n    ...NoteDetails\n  }\n}\n\n# Add a comment to the note\nmutation AddNoteComment($modelId: ID!, $noteId: ID!, $data: CommentDetails!) {\n  addNoteComment(modelId: $modelId, , noteId: $noteId, comment: $data) {\n    ...CommentDetails\n  }\n}\n\n# Deletes a single note\nmutation DeleteNote ($modelId: ID!, $noteId: ID!) {\n  deleteNote(modelId: $modelId, , noteId: $noteId)\n}\n\n# Update a single note\nmutation PatchNote($modelId: ID!, $noteId: ID!, $data: NotePatch!) {\n  patchNote(modelId: $modelId, , noteId: $noteId, patch: $data) {\n    ...NoteDetails\n  }\n}\n\n# Reopen a note\nmutation ReopenNote ($modelId: ID!, $noteId: ID!) {\n  reopenNote(modelId: $modelId, , noteId: $noteId)\n}\n\n# Resolve a note\nmutation ResolveNote($modelId: ID!, $noteId: ID!) {\n  resolveNote(modelId: $modelId, , noteId: $noteId)\n}\n\n# common Note properties\nfragment NoteDetails on Note {\n  id\n  createdBy { id, firstName, lastName, email }\n  color\n  enabled\n  floor { id, meshId }\n  room { id, meshId }\n  anchorPosition { x, y, z }\n  stemEnabled\n  stemNormal { x, y, z }\n  stemLength\n  resolution\n  created\n  modified\n  lastCommentAt\n  comments {\n    results { ...CommentDetails }\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      var s = {}
      function r(e) {
        return e.filter(function (e) {
          if ('FragmentDefinition' !== e.kind) return !0
          var t = e.name.value
          return !s[t] && ((s[t] = !0), !0)
        })
      }
      function o(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var i = e.type
          'NamedType' === i.kind && t.add(i.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            o(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              o(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              o(e, t)
            })
      }
      ;(n.definitions = n.definitions.concat(r(i(98443).definitions))),
        (n.definitions = n.definitions.concat(r(i(70129).definitions)))
      var a = {}
      function l(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function c(e, t) {
        var i = { kind: e.kind, definitions: [l(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var n = a[t] || new Set(),
          s = new Set(),
          r = new Set()
        for (
          n.forEach(function (e) {
            r.add(e)
          });
          r.size > 0;

        ) {
          var o = r
          ;(r = new Set()),
            o.forEach(function (e) {
              s.has(e) ||
                (s.add(e),
                (a[e] || new Set()).forEach(function (e) {
                  r.add(e)
                }))
            })
        }
        return (
          s.forEach(function (t) {
            var n = l(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      n.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          o(e, t), (a[e.name.value] = t)
        }
      }),
        (e.exports = n),
        (e.exports.GetNotes = c(n, 'GetNotes')),
        (e.exports.AddNote = c(n, 'AddNote')),
        (e.exports.AddNoteComment = c(n, 'AddNoteComment')),
        (e.exports.DeleteNote = c(n, 'DeleteNote')),
        (e.exports.PatchNote = c(n, 'PatchNote')),
        (e.exports.ReopenNote = c(n, 'ReopenNote')),
        (e.exports.ResolveNote = c(n, 'ResolveNote')),
        (e.exports.NoteDetails = c(n, 'NoteDetails'))
    },
    70778: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetSnapshots' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'assets' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'photos' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'PhotoDetails'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PatchPhoto' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'photoId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'label' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'String' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'patchPhoto' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'photoId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'photoId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'label' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'label' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'PhotoDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'DeletePhoto' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'photoId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'deletePhoto' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'modelId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'photoId' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'photoId' }
                      }
                    }
                  ],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'UploadHighlightReelSnapshot' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'contents' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'FileUpload' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'label' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'String' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'snapshotLocation' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'SnapshotLocationInput' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  alias: { kind: 'Name', value: 'snapshot' },
                  name: {
                    kind: 'Name',
                    value: 'uploadHighlightReelSnapshot'
                  },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'contents' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'contents' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'label' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'label' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'snapshotLocation' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'snapshotLocation' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'PhotoDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'UploadModelSnapshot' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'contents' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'FileUpload' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'label' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'String' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'snapshotLocation' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'SnapshotLocationInput' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'photoType' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'PhotoType' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  alias: { kind: 'Name', value: 'snapshot' },
                  name: { kind: 'Name', value: 'uploadModelSnapshot' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'contents' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'contents' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'label' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'label' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'snapshotLocation' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'snapshotLocation' }
                      }
                    },
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'photoType' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'photoType' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'PhotoDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'PhotoDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'Photo' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'label' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'classification' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'category' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'height' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'width' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'created' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'modified' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'status' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'filename' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'format' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'url' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolutions' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'type' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'origin' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'validUntil' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  alias: { kind: 'Name', value: 'thumbnailUrl' },
                  name: { kind: 'Name', value: 'resizeUrl' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'resolution' },
                      value: { kind: 'EnumValue', value: 'thumbnail' }
                    }
                  ],
                  directives: []
                },
                {
                  kind: 'Field',
                  alias: { kind: 'Name', value: 'presentationUrl' },
                  name: { kind: 'Name', value: 'resizeUrl' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'resolution' },
                      value: { kind: 'EnumValue', value: 'presentation' }
                    }
                  ],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'snapshotLocation' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'viewMode' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'position' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'x' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'y' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'z' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'rotation' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'x' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'y' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'z' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'w' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'zoom' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'floorVisibility' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'meshId' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'sequence' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'anchor' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'pano' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'Field',
                                    name: { kind: 'Name', value: 'id' },
                                    arguments: [],
                                    directives: []
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'placement'
                                    },
                                    arguments: [],
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 1551 }
      }
      t.loc.source = {
        body: 'query GetSnapshots($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    assets {\n      photos { ...PhotoDetails }\n    }\n  }\n}\n\nmutation PatchPhoto($modelId: ID!, $photoId: ID!, $label: String!) {\n  patchPhoto(modelId: $modelId, photoId: $photoId, label: $label) {\n    ...PhotoDetails\n  }\n}\n\nmutation DeletePhoto($modelId: ID!, $photoId: ID!) {\n  deletePhoto(modelId: $modelId, photoId: $photoId)\n}\n\nmutation UploadHighlightReelSnapshot($modelId: ID!, $contents: FileUpload!, $label: String!, $snapshotLocation: SnapshotLocationInput!) {\n  snapshot: uploadHighlightReelSnapshot(id: $modelId, contents: $contents, label: $label, snapshotLocation: $snapshotLocation) {\n    ...PhotoDetails\n  }\n}\n\nmutation UploadModelSnapshot($modelId: ID!, $contents: FileUpload!, $label: String!, $snapshotLocation: SnapshotLocationInput!, $photoType: PhotoType!) {\n  snapshot: uploadModelSnapshot(id: $modelId, contents: $contents, label: $label, snapshotLocation: $snapshotLocation, photoType: $photoType) {\n    ...PhotoDetails\n  }\n}\n\nfragment PhotoDetails on Photo {\n  id\n  label\n  classification\n  category\n  height\n  width\n  created\n  modified\n  status\n  filename\n  format\n  url\n  resolutions\n  type\n  origin\n  validUntil\n  thumbnailUrl: resizeUrl(resolution: thumbnail)\n  presentationUrl: resizeUrl(resolution: presentation)\n  snapshotLocation {\n    viewMode\n    position { x y z }\n    rotation { x y z w }\n    zoom\n    floorVisibility {\n      id\n      meshId\n      sequence\n    }\n    anchor {\n      id\n      pano {\n        id\n        placement\n      }\n    }\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetSnapshots = r(t, 'GetSnapshots')),
        (e.exports.PatchPhoto = r(t, 'PatchPhoto')),
        (e.exports.DeletePhoto = r(t, 'DeletePhoto')),
        (e.exports.UploadHighlightReelSnapshot = r(
          t,
          'UploadHighlightReelSnapshot'
        )),
        (e.exports.UploadModelSnapshot = r(t, 'UploadModelSnapshot')),
        (e.exports.PhotoDetails = r(t, 'PhotoDetails'))
    },
    83531: (e, t, i) => {
      var n = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetModelPrefetch' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'assets' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'meshes' },
                              arguments: [
                                {
                                  kind: 'Argument',
                                  name: { kind: 'Name', value: 'formats' },
                                  value: {
                                    kind: 'StringValue',
                                    value: 'dam',
                                    block: !1
                                  }
                                },
                                {
                                  kind: 'Argument',
                                  name: {
                                    kind: 'Name',
                                    value: 'resolutions'
                                  },
                                  value: {
                                    kind: 'ListValue',
                                    values: [
                                      {
                                        kind: 'StringValue',
                                        value: '50k',
                                        block: !1
                                      },
                                      {
                                        kind: 'StringValue',
                                        value: '500k',
                                        block: !1
                                      }
                                    ]
                                  }
                                },
                                {
                                  kind: 'Argument',
                                  name: {
                                    kind: 'Name',
                                    value: 'compressions'
                                  },
                                  value: { kind: 'EnumValue', value: 'none' }
                                }
                              ],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'MeshDetails'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'textures' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'TextureDetails'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'floors' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'FloorDetails' },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'image' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'ModelImage' },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'locations' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'tags' },
                            value: {
                              kind: 'StringValue',
                              value: 'showcase',
                              block: !1
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'AnchorLocationDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'name' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'options' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'ModelOptions' },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'organization' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'publication' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'PublicationDetails'
                              },
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'options' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'FragmentSpread',
                                    name: {
                                      kind: 'Name',
                                      value: 'PublicationOptions'
                                    },
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'rooms' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'RoomDetails' },
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'visibility' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 797 }
      }
      n.loc.source = {
        body: '#import "./floors.gql"\n#import "./model.gql"\n#import "./rooms.gql"\n#import "./photos.gql"\n#import "./sweeps.gql"\n\n# Preloaded model data to be embedded into Showcase HTML page,\n# only load data that is required for Showcase to start (ie. NO Mattertags)\nquery GetModelPrefetch($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    assets {\n      meshes(formats: "dam", resolutions: ["50k", "500k"], compressions: none) { ...MeshDetails }\n      textures { ...TextureDetails }\n    }\n    floors { ...FloorDetails }\n    image { ...ModelImage }\n    locations(tags:"showcase") { ...AnchorLocationDetails }\n    name\n    options { ...ModelOptions }\n    organization\n    publication {\n      ...PublicationDetails\n      options { ...PublicationOptions }\n    }\n    rooms { ...RoomDetails }\n    visibility\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      var s = {}
      function r(e) {
        return e.filter(function (e) {
          if ('FragmentDefinition' !== e.kind) return !0
          var t = e.name.value
          return !s[t] && ((s[t] = !0), !0)
        })
      }
      function o(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var i = e.type
          'NamedType' === i.kind && t.add(i.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            o(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              o(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              o(e, t)
            })
      }
      ;(n.definitions = n.definitions.concat(r(i(81047).definitions))),
        (n.definitions = n.definitions.concat(r(i(91985).definitions))),
        (n.definitions = n.definitions.concat(r(i(88655).definitions))),
        (n.definitions = n.definitions.concat(r(i(70778).definitions))),
        (n.definitions = n.definitions.concat(r(i(15100).definitions)))
      var a = {}
      function l(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      n.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          o(e, t), (a[e.name.value] = t)
        }
      }),
        (e.exports = n),
        (e.exports.GetModelPrefetch = (function (e, t) {
          var i = { kind: e.kind, definitions: [l(e, t)] }
          e.hasOwnProperty('loc') && (i.loc = e.loc)
          var n = a[t] || new Set(),
            s = new Set(),
            r = new Set()
          for (
            n.forEach(function (e) {
              r.add(e)
            });
            r.size > 0;

          ) {
            var o = r
            ;(r = new Set()),
              o.forEach(function (e) {
                s.has(e) ||
                  (s.add(e),
                  (a[e] || new Set()).forEach(function (e) {
                    r.add(e)
                  }))
              })
          }
          return (
            s.forEach(function (t) {
              var n = l(e, t)
              n && i.definitions.push(n)
            }),
            i
          )
        })(n, 'GetModelPrefetch'))
    },
    88655: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetRooms' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'rooms' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: { kind: 'Name', value: 'RoomDetails' },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'RoomDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'ModelRoom' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'meshId' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floor' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'dimensions' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'height' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'width' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'depth' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'areaFloor' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tags' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 266 }
      }
      t.loc.source = {
        body: '\nquery GetRooms ($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    rooms {\n      ...RoomDetails\n    }\n  }\n}\n\nfragment RoomDetails on ModelRoom {\n  id\n  meshId\n  floor {\n    id\n    meshId\n  }\n  dimensions {\n    height\n    width\n    depth\n    areaFloor\n  }\n  tags\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetRooms = r(t, 'GetRooms')),
        (e.exports.RoomDetails = r(t, 'RoomDetails'))
    },
    15100: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetSweeps' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'locations' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'AnchorLocationDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetShowcaseSweeps' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'locations' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'tags' },
                            value: {
                              kind: 'StringValue',
                              value: 'showcase',
                              block: !1
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'FragmentSpread',
                              name: {
                                kind: 'Name',
                                value: 'AnchorLocationDetails'
                              },
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'SkyboxDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'SkyboxPanorama' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolution' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'status' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'urlTemplate' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tileResolution' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tileCount' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tileUrlTemplate' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'validUntil' },
                  arguments: [],
                  directives: []
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'SkyboxUrlDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'PanoramicImageLocation' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'resolutions' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'skyboxes' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'SkyboxDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'FragmentDefinition',
            name: { kind: 'Name', value: 'AnchorLocationDetails' },
            typeCondition: {
              kind: 'NamedType',
              name: { kind: 'Name', value: 'AnchorLocation' }
            },
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'id' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'index' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'floor' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'room' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'meshId' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'neighbors' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'tags' },
                  arguments: [],
                  directives: []
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'position' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'x' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'y' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'z' },
                        arguments: [],
                        directives: []
                      }
                    ]
                  }
                },
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'pano' },
                  arguments: [],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'sweepUuid' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'label' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'placement' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'source' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'position' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'x' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'y' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'z' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'rotation' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'x' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'y' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'z' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'w' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      },
                      {
                        kind: 'FragmentSpread',
                        name: { kind: 'Name', value: 'SkyboxUrlDetails' },
                        directives: []
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 954 }
      }
      t.loc.source = {
        body: '\nquery GetSweeps($modelId: ID!) {\n  model(id: $modelId) {\n    id,\n    locations {\n      ...AnchorLocationDetails\n    }\n  }\n}\n\nquery GetShowcaseSweeps($modelId: ID!) {\n  model(id: $modelId) {\n    id,\n    locations(tags: "showcase") {\n      ...AnchorLocationDetails\n    }\n  }\n}\n\nfragment SkyboxDetails on SkyboxPanorama {\n  # TODO(PL-5928) all SkyboxDetail results have the same non-unique id,\n  # using it as a map key will yield unexpected results\n  # id\n  resolution\n  status\n  urlTemplate\n  tileResolution\n  tileCount\n  tileUrlTemplate\n  validUntil\n}\n\nfragment SkyboxUrlDetails on PanoramicImageLocation {\n  id\n  resolutions\n  skyboxes { ...SkyboxDetails }\n}\n\nfragment AnchorLocationDetails on AnchorLocation {\n  id\n  index\n  floor { id, meshId }\n  room { id, meshId }\n  neighbors\n  tags\n  position { x y z }\n  pano {\n    id\n    sweepUuid\n    label\n    placement\n    source\n    position { x y z }\n    rotation { x y z w }\n    ...SkyboxUrlDetails\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetSweeps = r(t, 'GetSweeps')),
        (e.exports.GetShowcaseSweeps = r(t, 'GetShowcaseSweeps')),
        (e.exports.SkyboxDetails = r(t, 'SkyboxDetails')),
        (e.exports.SkyboxUrlDetails = r(t, 'SkyboxUrlDetails')),
        (e.exports.AnchorLocationDetails = r(t, 'AnchorLocationDetails'))
    },
    11820: (e) => {
      var t = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetCurrentUserModelAccess' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'userId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'users' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'ids' },
                            value: {
                              kind: 'ListValue',
                              values: [
                                {
                                  kind: 'Variable',
                                  name: { kind: 'Name', value: 'userId' }
                                }
                              ]
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'results' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'modelAccess'
                                    },
                                    arguments: [],
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'policies' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'name' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetUsers' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'search' }
                },
                type: {
                  kind: 'NamedType',
                  name: { kind: 'Name', value: 'String' }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'ids' }
                },
                type: {
                  kind: 'ListType',
                  type: {
                    kind: 'NonNullType',
                    type: {
                      kind: 'NamedType',
                      name: { kind: 'Name', value: 'ID' }
                    }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'emails' }
                },
                type: {
                  kind: 'ListType',
                  type: {
                    kind: 'NonNullType',
                    type: {
                      kind: 'NamedType',
                      name: { kind: 'Name', value: 'String' }
                    }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'users' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'search' },
                            value: {
                              kind: 'Variable',
                              name: { kind: 'Name', value: 'search' }
                            }
                          },
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'ids' },
                            value: {
                              kind: 'Variable',
                              name: { kind: 'Name', value: 'ids' }
                            }
                          },
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'emails' },
                            value: {
                              kind: 'Variable',
                              name: { kind: 'Name', value: 'emails' }
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'results' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'Field',
                                    name: { kind: 'Name', value: 'id' },
                                    arguments: [],
                                    directives: []
                                  },
                                  {
                                    kind: 'Field',
                                    name: { kind: 'Name', value: 'email' },
                                    arguments: [],
                                    directives: []
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'firstName'
                                    },
                                    arguments: [],
                                    directives: []
                                  },
                                  {
                                    kind: 'Field',
                                    name: { kind: 'Name', value: 'lastName' },
                                    arguments: [],
                                    directives: []
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'modelAccess'
                                    },
                                    arguments: [],
                                    directives: []
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 554 }
      }
      t.loc.source = {
        body: '# get access for the current user\nquery GetCurrentUserModelAccess($modelId: ID!, $userId: ID!) {\n  model(id: $modelId) {\n    users(ids: [$userId]) {\n      results {\n        modelAccess\n      }\n    }\n    policies { name }\n  }\n}\n\n# get users with access to the specified model\nquery GetUsers($modelId: ID!, $search: String, $ids: [ID!], $emails: [String!]) {\n  model(id: $modelId) {\n    users(search: $search, ids: $ids, emails: $emails) {\n      results {\n        id\n        email\n        firstName\n        lastName\n        modelAccess\n      }\n    }\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      function i(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var n = e.type
          'NamedType' === n.kind && t.add(n.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            i(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              i(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              i(e, t)
            })
      }
      var n = {}
      function s(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function r(e, t) {
        var i = { kind: e.kind, definitions: [s(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var r = n[t] || new Set(),
          o = new Set(),
          a = new Set()
        for (
          r.forEach(function (e) {
            a.add(e)
          });
          a.size > 0;

        ) {
          var l = a
          ;(a = new Set()),
            l.forEach(function (e) {
              o.has(e) ||
                (o.add(e),
                (n[e] || new Set()).forEach(function (e) {
                  a.add(e)
                }))
            })
        }
        return (
          o.forEach(function (t) {
            var n = s(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      t.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          i(e, t), (n[e.name.value] = t)
        }
      }),
        (e.exports = t),
        (e.exports.GetCurrentUserModelAccess = r(
          t,
          'GetCurrentUserModelAccess'
        )),
        (e.exports.GetUsers = r(t, 'GetUsers'))
    },
    53306: (e, t, i) => {
      var n = {
        kind: 'Document',
        definitions: [
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetMergeDiff' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'viewId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'viewId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'mergeDiff' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'src' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'dest' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'typesModified' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetViews' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'id' },
                        arguments: [],
                        directives: []
                      },
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'views' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'type' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'PublishView' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'viewId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'mergeMutator' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'src' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'viewId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'merge' },
                        arguments: [],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'mutation',
            name: { kind: 'Name', value: 'RevertView' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'viewId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              },
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'mergeTypes' }
                },
                type: {
                  kind: 'ListType',
                  type: {
                    kind: 'NonNullType',
                    type: {
                      kind: 'NamedType',
                      name: { kind: 'Name', value: 'MergeableType' }
                    }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'mergeMutator' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'src' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'viewId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        name: { kind: 'Name', value: 'revert' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'types' },
                            value: {
                              kind: 'Variable',
                              name: { kind: 'Name', value: 'mergeTypes' }
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            kind: 'OperationDefinition',
            operation: 'query',
            name: { kind: 'Name', value: 'GetSessionDiff' },
            variableDefinitions: [
              {
                kind: 'VariableDefinition',
                variable: {
                  kind: 'Variable',
                  name: { kind: 'Name', value: 'modelId' }
                },
                type: {
                  kind: 'NonNullType',
                  type: {
                    kind: 'NamedType',
                    name: { kind: 'Name', value: 'ID' }
                  }
                },
                directives: []
              }
            ],
            directives: [],
            selectionSet: {
              kind: 'SelectionSet',
              selections: [
                {
                  kind: 'Field',
                  name: { kind: 'Name', value: 'model' },
                  arguments: [
                    {
                      kind: 'Argument',
                      name: { kind: 'Name', value: 'id' },
                      value: {
                        kind: 'Variable',
                        name: { kind: 'Name', value: 'modelId' }
                      }
                    }
                  ],
                  directives: [],
                  selectionSet: {
                    kind: 'SelectionSet',
                    selections: [
                      {
                        kind: 'Field',
                        alias: { kind: 'Name', value: 'base' },
                        name: { kind: 'Name', value: 'view' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'type' },
                            value: {
                              kind: 'StringValue',
                              value: 'matterport.model.default',
                              block: !1
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'model' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'Field',
                                    name: { kind: 'Name', value: 'labels' },
                                    arguments: [
                                      {
                                        kind: 'Argument',
                                        name: {
                                          kind: 'Name',
                                          value: 'includeDisabled'
                                        },
                                        value: {
                                          kind: 'BooleanValue',
                                          value: !0
                                        }
                                      }
                                    ],
                                    directives: [],
                                    selectionSet: {
                                      kind: 'SelectionSet',
                                      selections: [
                                        {
                                          kind: 'FragmentSpread',
                                          name: {
                                            kind: 'Name',
                                            value: 'LabelDetails'
                                          },
                                          directives: []
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'mattertags'
                                    },
                                    arguments: [
                                      {
                                        kind: 'Argument',
                                        name: {
                                          kind: 'Name',
                                          value: 'includeDisabled'
                                        },
                                        value: {
                                          kind: 'BooleanValue',
                                          value: !0
                                        }
                                      }
                                    ],
                                    directives: [],
                                    selectionSet: {
                                      kind: 'SelectionSet',
                                      selections: [
                                        {
                                          kind: 'FragmentSpread',
                                          name: {
                                            kind: 'Name',
                                            value: 'MattertagDetails'
                                          },
                                          directives: []
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'measurementPaths'
                                    },
                                    arguments: [
                                      {
                                        kind: 'Argument',
                                        name: {
                                          kind: 'Name',
                                          value: 'includeDisabled'
                                        },
                                        value: {
                                          kind: 'BooleanValue',
                                          value: !0
                                        }
                                      }
                                    ],
                                    directives: [],
                                    selectionSet: {
                                      kind: 'SelectionSet',
                                      selections: [
                                        {
                                          kind: 'FragmentSpread',
                                          name: {
                                            kind: 'Name',
                                            value: 'MeasurementDetails'
                                          },
                                          directives: []
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      },
                      {
                        kind: 'Field',
                        alias: { kind: 'Name', value: 'view' },
                        name: { kind: 'Name', value: 'view' },
                        arguments: [
                          {
                            kind: 'Argument',
                            name: { kind: 'Name', value: 'type' },
                            value: {
                              kind: 'StringValue',
                              value: 'matterport.workshop.session',
                              block: !1
                            }
                          }
                        ],
                        directives: [],
                        selectionSet: {
                          kind: 'SelectionSet',
                          selections: [
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'id' },
                              arguments: [],
                              directives: []
                            },
                            {
                              kind: 'Field',
                              name: { kind: 'Name', value: 'model' },
                              arguments: [],
                              directives: [],
                              selectionSet: {
                                kind: 'SelectionSet',
                                selections: [
                                  {
                                    kind: 'Field',
                                    name: { kind: 'Name', value: 'labels' },
                                    arguments: [
                                      {
                                        kind: 'Argument',
                                        name: {
                                          kind: 'Name',
                                          value: 'includeDisabled'
                                        },
                                        value: {
                                          kind: 'BooleanValue',
                                          value: !0
                                        }
                                      }
                                    ],
                                    directives: [],
                                    selectionSet: {
                                      kind: 'SelectionSet',
                                      selections: [
                                        {
                                          kind: 'Field',
                                          name: { kind: 'Name', value: 'id' },
                                          arguments: [],
                                          directives: []
                                        },
                                        {
                                          kind: 'Field',
                                          name: {
                                            kind: 'Name',
                                            value: 'modified'
                                          },
                                          arguments: [],
                                          directives: []
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'mattertags'
                                    },
                                    arguments: [
                                      {
                                        kind: 'Argument',
                                        name: {
                                          kind: 'Name',
                                          value: 'includeDisabled'
                                        },
                                        value: {
                                          kind: 'BooleanValue',
                                          value: !0
                                        }
                                      }
                                    ],
                                    directives: [],
                                    selectionSet: {
                                      kind: 'SelectionSet',
                                      selections: [
                                        {
                                          kind: 'Field',
                                          name: { kind: 'Name', value: 'id' },
                                          arguments: [],
                                          directives: []
                                        },
                                        {
                                          kind: 'Field',
                                          name: {
                                            kind: 'Name',
                                            value: 'modified'
                                          },
                                          arguments: [],
                                          directives: []
                                        }
                                      ]
                                    }
                                  },
                                  {
                                    kind: 'Field',
                                    name: {
                                      kind: 'Name',
                                      value: 'measurementPaths'
                                    },
                                    arguments: [
                                      {
                                        kind: 'Argument',
                                        name: {
                                          kind: 'Name',
                                          value: 'includeDisabled'
                                        },
                                        value: {
                                          kind: 'BooleanValue',
                                          value: !0
                                        }
                                      }
                                    ],
                                    directives: [],
                                    selectionSet: {
                                      kind: 'SelectionSet',
                                      selections: [
                                        {
                                          kind: 'Field',
                                          name: { kind: 'Name', value: 'id' },
                                          arguments: [],
                                          directives: []
                                        },
                                        {
                                          kind: 'Field',
                                          name: {
                                            kind: 'Name',
                                            value: 'modified'
                                          },
                                          arguments: [],
                                          directives: []
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        loc: { start: 0, end: 1499 }
      }
      n.loc.source = {
        body: '#import "./labels.gql"\n#import "./mattertags.gql"\n#import "./measurements.gql"\n\n# Gets the data types that have changed between a view and the base model\nquery GetMergeDiff($viewId: ID!) {\n  model(id: $viewId) {\n    id\n    mergeDiff {\n      src\n      dest\n      typesModified\n    }\n  }\n}\n\n# Get available views for a model\nquery GetViews($modelId: ID!) {\n  model(id: $modelId) {\n    id\n    views {\n      id\n      type\n    }\n  }\n}\n\n# Merges the given view into the base model view\nmutation PublishView($viewId: ID!) {\n  mergeMutator(src: $viewId) {\n    merge {\n      id\n    }\n  }\n}\n\n# Resets the provided view to be the same as the base model view\nmutation RevertView($viewId: ID!, $mergeTypes: [MergeableType!]) {\n  mergeMutator(src: $viewId) {\n    revert(types: $mergeTypes ) {\n      id\n    }\n  }\n}\n\n# Gets the data that has changed between the Workshop session and base model\nquery GetSessionDiff($modelId: ID!) {\n  model(id: $modelId) {\n    base: view(type: "matterport.model.default") {\n      id\n      model {\n        labels(includeDisabled: true) { ...LabelDetails }\n        mattertags(includeDisabled: true) { ...MattertagDetails }\n        measurementPaths(includeDisabled: true) { ...MeasurementDetails }\n      }\n    }\n    view: view(type: "matterport.workshop.session") {\n      id\n      model {\n        labels(includeDisabled: true) { id modified }\n        mattertags(includeDisabled: true) { id modified }\n        measurementPaths(includeDisabled: true) { id modified }\n      }\n    }\n  }\n}\n',
        name: 'GraphQL request',
        locationOffset: { line: 1, column: 1 }
      }
      var s = {}
      function r(e) {
        return e.filter(function (e) {
          if ('FragmentDefinition' !== e.kind) return !0
          var t = e.name.value
          return !s[t] && ((s[t] = !0), !0)
        })
      }
      function o(e, t) {
        if ('FragmentSpread' === e.kind) t.add(e.name.value)
        else if ('VariableDefinition' === e.kind) {
          var i = e.type
          'NamedType' === i.kind && t.add(i.name.value)
        }
        e.selectionSet &&
          e.selectionSet.selections.forEach(function (e) {
            o(e, t)
          }),
          e.variableDefinitions &&
            e.variableDefinitions.forEach(function (e) {
              o(e, t)
            }),
          e.definitions &&
            e.definitions.forEach(function (e) {
              o(e, t)
            })
      }
      ;(n.definitions = n.definitions.concat(r(i(95162).definitions))),
        (n.definitions = n.definitions.concat(r(i(6850).definitions))),
        (n.definitions = n.definitions.concat(r(i(37946).definitions)))
      var a = {}
      function l(e, t) {
        for (var i = 0; i < e.definitions.length; i++) {
          var n = e.definitions[i]
          if (n.name && n.name.value == t) return n
        }
      }
      function c(e, t) {
        var i = { kind: e.kind, definitions: [l(e, t)] }
        e.hasOwnProperty('loc') && (i.loc = e.loc)
        var n = a[t] || new Set(),
          s = new Set(),
          r = new Set()
        for (
          n.forEach(function (e) {
            r.add(e)
          });
          r.size > 0;

        ) {
          var o = r
          ;(r = new Set()),
            o.forEach(function (e) {
              s.has(e) ||
                (s.add(e),
                (a[e] || new Set()).forEach(function (e) {
                  r.add(e)
                }))
            })
        }
        return (
          s.forEach(function (t) {
            var n = l(e, t)
            n && i.definitions.push(n)
          }),
          i
        )
      }
      n.definitions.forEach(function (e) {
        if (e.name) {
          var t = new Set()
          o(e, t), (a[e.name.value] = t)
        }
      }),
        (e.exports = n),
        (e.exports.GetMergeDiff = c(n, 'GetMergeDiff')),
        (e.exports.GetViews = c(n, 'GetViews')),
        (e.exports.PublishView = c(n, 'PublishView')),
        (e.exports.RevertView = c(n, 'RevertView')),
        (e.exports.GetSessionDiff = c(n, 'GetSessionDiff'))
    }
  },
  r = {}
function o(e) {
  var t = r[e]
  if (void 0 !== t) return t.exports
  var i = (r[e] = { id: e, loaded: !1, exports: {} })
  return s[e].call(i.exports, i, i.exports, o), (i.loaded = !0), i.exports
}
;(o.m = s),
  (o.amdO = {}),
  (o.n = (e) => {
    var t = e && e.__esModule ? () => e.default : () => e
    return o.d(t, { a: t }), t
  }),
  (t = Object.getPrototypeOf
    ? (e) => Object.getPrototypeOf(e)
    : (e) => e.__proto__),
  (o.t = function (i, n) {
    if ((1 & n && (i = this(i)), 8 & n)) return i
    if ('object' == typeof i && i) {
      if (4 & n && i.__esModule) return i
      if (16 & n && 'function' == typeof i.then) return i
    }
    var s = Object.create(null)
    o.r(s)
    var r = {}
    e = e || [null, t({}), t([]), t(t)]
    for (var a = 2 & n && i; 'object' == typeof a && !~e.indexOf(a); a = t(a))
      Object.getOwnPropertyNames(a).forEach((e) => (r[e] = () => i[e]))
    return (r.default = () => i), o.d(s, r), s
  }),
  (o.d = (e, t) => {
    for (var i in t)
      o.o(t, i) &&
        !o.o(e, i) &&
        Object.defineProperty(e, i, { enumerable: !0, get: t[i] })
  }),
  (o.f = {}),
  (o.e = (e) =>
    Promise.all(Object.keys(o.f).reduce((t, i) => (o.f[i](e, t), t), []))),
  (o.u = (e) => 'js/' + e + '.js'),
  (o.miniCssF = (e) =>
    'css/' +
    ({
      66: 'control-kit',
      136: 'late',
      143: 'font',
      316: 'menus',
      321: 'core',
      376: 'vr',
      383: 'helpers',
      458: 'showcase',
      464: 'search',
      525: 'sdk-bundle',
      718: 'encoders',
      828: 'ws-blur',
      833: 'split',
      838: 'externalSdkLoader',
      932: 'lib-lottie',
      983: 'tiled'
    }[e] || e) +
    '.css'),
  (o.g = (function () {
    if ('object' == typeof globalThis) return globalThis
    try {
      return this || new Function('return this')()
    } catch (e) {
      if ('object' == typeof window) return window
    }
  })()),
  (o.hmd = (e) => (
    (e = Object.create(e)).children || (e.children = []),
    Object.defineProperty(e, 'exports', {
      enumerable: !0,
      set: () => {
        throw new Error(
          'ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' +
            e.id
        )
      }
    }),
    e
  )),
  (o.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)),
  (i = {}),
  (n = 'mp_webgl:'),
  (o.l = (e, t, s, r) => {
    if (i[e]) i[e].push(t)
    else {
      var a, l
      if (void 0 !== s)
        for (
          var c = document.getElementsByTagName('script'), h = 0;
          h < c.length;
          h++
        ) {
          var d = c[h]
          if (
            d.getAttribute('src') == e ||
            d.getAttribute('data-webpack') == n + s
          ) {
            a = d
            break
          }
        }
      a ||
        ((l = !0),
        ((a = document.createElement('script')).charset = 'utf-8'),
        (a.timeout = 120),
        o.nc && a.setAttribute('nonce', o.nc),
        a.setAttribute('data-webpack', n + s),
        (a.src = e)),
        (i[e] = [t])
      var u = (t, n) => {
          ;(a.onerror = a.onload = null), clearTimeout(p)
          var s = i[e]
          if (
            (delete i[e],
            a.parentNode && a.parentNode.removeChild(a),
            s && s.forEach((e) => e(n)),
            t)
          )
            return t(n)
        },
        p = setTimeout(
          u.bind(null, void 0, { type: 'timeout', target: a }),
          12e4
        )
      ;(a.onerror = u.bind(null, a.onerror)),
        (a.onload = u.bind(null, a.onload)),
        l && document.head.appendChild(a)
    }
  }),
  (o.r = (e) => {
    'undefined' != typeof Symbol &&
      Symbol.toStringTag &&
      Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
      Object.defineProperty(e, '__esModule', { value: !0 })
  }),
  (o.nmd = (e) => ((e.paths = []), e.children || (e.children = []), e)),
  (o.p = ''),
  (() => {
    var e = { 458: 0 }
    o.f.j = (t, i) => {
      var n = o.o(e, t) ? e[t] : void 0
      if (0 !== n)
        if (n) i.push(n[2])
        else {
          var s = new Promise((i, s) => (n = e[t] = [i, s]))
          i.push((n[2] = s))
          var r = o.p + o.u(t),
            a = new Error()
          o.l(
            r,
            (i) => {
              if (o.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) {
                var s = i && ('load' === i.type ? 'missing' : i.type),
                  r = i && i.target && i.target.src
                ;(a.message =
                  'Loading chunk ' + t + ' failed.\n(' + s + ': ' + r + ')'),
                  (a.name = 'ChunkLoadError'),
                  (a.type = s),
                  (a.request = r),
                  n[1](a)
              }
            },
            'chunk-' + t,
            t
          )
        }
    }
    var t = (t, i) => {
        var n,
          s,
          [r, a, l] = i,
          c = 0
        for (n in a) o.o(a, n) && (o.m[n] = a[n])
        if (l) l(o)
        for (t && t(i); c < r.length; c++)
          (s = r[c]), o.o(e, s) && e[s] && e[s][0](), (e[r[c]] = 0)
      },
      i = (self.webpackChunkmp_webgl = self.webpackChunkmp_webgl || [])
    i.forEach(t.bind(null, 0)), (i.push = t.bind(null, i.push.bind(i)))
  })(),
  (() => {
    'use strict'
    var e = o(90933)
    class EngineContext {
      constructor(e) {
        ;(this.fetchedModules = []),
          (this.engine = e),
          (this.messageBus = e.msgBus),
          (this.market = new MarketContext(e.market)),
          (this.commandBinder = e.commandBinder),
          (this.getModuleSync = e.getModuleSync.bind(e)),
          (this.addComponent = e.addComponent.bind(e)),
          (this.getComponentByType = e.getComponentByType.bind(e)),
          (this.getComponents = e.getComponents.bind(e)),
          (this.removeComponent = e.removeComponent.bind(e)),
          (this.subscribe = e.subscribe.bind(e)),
          (this.unsubscribe = e.unsubscribe.bind(e)),
          (this.broadcast = e.broadcast.bind(e)),
          (this.claimRenderLayer = e.claimRenderLayer.bind(e)),
          (this.getRenderLayer = e.getRenderLayer.bind(e)),
          (this.disposeRenderLayer = e.disposeRenderLayer.bind(e)),
          (this.startGenerator = e.startGenerator.bind(e)),
          (this.stopGenerator = e.stopGenerator.bind(e)),
          (this.after = e.after.bind(e)),
          (this.deactivate = e.deactivate.bind(e)),
          (this.toggleRendering = e.toggleRendering.bind(e)),
          (this.getXrFrame = e.getXrFrame.bind(e))
      }
      getModule(e) {
        const t = Date.now()
        return this.engine.getModule(e).then((e) => {
          const i = Date.now()
          return (
            this.fetchedModules.push({
              moduleName: e.name,
              isModule: !0,
              startAwait: t,
              finishAwait: i
            }),
            e
          )
        })
      }
      getModuleBySymbol(e) {
        const t = Date.now()
        return this.engine.getModuleBySymbol(e).then((e) => {
          const i = Date.now()
          return (
            this.fetchedModules.push({
              moduleName: e.name,
              isModule: !0,
              startAwait: t,
              finishAwait: i
            }),
            e
          )
        })
      }
      getLoadedDependencies() {
        return [...this.fetchedModules, ...this.market.getLoadedDependencies()]
      }
      get msgBus() {
        return this.messageBus
      }
    }
    class MarketContext {
      constructor(e) {
        ;(this.fetchedData = []),
          (this.market = e),
          (this.register = e.register.bind(e)),
          (this.unregister = e.unregister.bind(e)),
          (this.tryGetData = e.tryGetData.bind(e)),
          (this.getModuleNameFromData = e.getModuleNameFromData.bind(e))
      }
      waitForData(t) {
        const i = Date.now()
        return this.market.waitForData(t).then((t) => {
          const n = Date.now()
          return (
            this.fetchedData.push({
              moduleName: this.getModuleNameFromData((0, e.oL)(t)),
              isModule: !1,
              startAwait: i,
              finishAwait: n
            }),
            t
          )
        })
      }
      getLoadedDependencies() {
        return this.fetchedData
      }
    }
    var t = o(64185),
      i = o(88512)
    const n = new i.Z('module-loader')
    var s
    !(function (e) {
      ;(e[(e.Registered = 0)] = 'Registered'),
        (e[(e.Loading = 1)] = 'Loading'),
        (e[(e.Initialized = 2)] = 'Initialized'),
        (e[(e.Unloaded = 3)] = 'Unloaded')
    })(s || (s = {}))
    class ModuleLoader {
      constructor() {
        ;(this.registeredModules = {}), (this.typeLookup = new e.cj())
      }
      registerModule(e, i) {
        const n = this.typeLookup.addType(e),
          r = {
            es6ModulePromise: i,
            ctorPromise: new t.Q(),
            initPromise: new t.Q(),
            state: s.Registered
          }
        this.registeredModules[n] = r
      }
      getTypeID(e) {
        const t = this.typeLookup.getKeyByType(e)
        if (!t) throw Error('Trying to access unregistered Module')
        return t
      }
      getTypeFromTypeID(e) {
        return this.typeLookup.getTypeByKey(e)
      }
      moduleRegistered(e) {
        return !!this.typeLookup.getKeyByType(e)
      }
      moduleLoaded(e) {
        if (!this.moduleRegistered(e)) return !1
        const t = this.typeLookup.getKeyByType(e),
          i = this.registeredModules[t].state
        return ![s.Registered, s.Unloaded].includes(i)
      }
      getModule(t) {
        const i = this.typeLookup.getKeyByType(t)
        if (!i)
          throw Error(`Trying to get ${(0, e.HS)(t)} before it was registered!`)
        if (this.registeredModules[i].state === s.Unloaded)
          throw Error(`${(0, e.HS)(t)} module unloaded`)
        return this.registeredModules[i].initPromise.nativePromise()
      }
      getModuleSync(t) {
        const i = this.typeLookup.getKeyByType(t)
        if (!i)
          throw new Error(
            `Trying to get ${(0, e.HS)(t)} before it was registered!`
          )
        const n = this.registeredModules[i]
        if (n.state !== s.Initialized || void 0 === n.module)
          throw Error(`${(0, e.HS)(t)} module not loaded!`)
        return n.module
      }
      loadModule(t, i, r = {}) {
        const o = this.typeLookup.getKeyByType(i)
        if (!o)
          throw Error(
            `Attempting to load an unregistered module ${(0, e.HS)(i)}`
          )
        const a = this.registeredModules[o]
        if (a.state === s.Initialized) return a
        if (a.state !== s.Registered && a.state !== s.Unloaded)
          throw Error(`${(0, e.HS)(i)} already loading`)
        a.state = s.Loading
        const l = (0, e.HS)(i)
        return (
          a
            .es6ModulePromise(l)
            .then((o) => {
              if (!o.default)
                throw new Error(
                  `${(0, e.HS)(i)} has no default export during module loading`
                )
              const l = new o.default()
              a.ctorPromise.resolve(l).then(() => {
                const e = Date.now()
                let i = !1
                setTimeout(() => {
                  i || n.debug(`${l.name} init took over 2 seconds`)
                }, 2e3),
                  l
                    .init(r, t)
                    .then(() => {
                      n.debug(
                        `${l.name} init took ${(Date.now() - e) / 1e3} secs.`
                      ),
                        (i = !0),
                        (a.state = s.Initialized),
                        (a.module = l),
                        a.initPromise.resolve(l)
                    })
                    .catch((e) => {
                      a.initPromise.reject(e)
                    })
              })
            })
            .catch((t) => {
              n.error(`Failed to load es6Module for ${(0, e.HS)(i)}: ${t}`),
                a.initPromise.reject(t)
            }),
          a
        )
      }
      whenQueueEmpties() {
        const e = []
        for (const t in this.registeredModules) {
          const i = this.registeredModules[t]
          i.state === s.Loading && e.push(i.initPromise)
        }
        return t.Q.all(e).nativePromise()
      }
      unloadModule(e) {
        const i = this.typeLookup.getKeyByType(e)
        if (!i) throw Error('Attempting to unload unregistered module')
        const n = this.registeredModules[i]
        if (n.state === s.Unloaded || n.state === s.Registered)
          throw Error('Attempting to unload not-loaded module')
        ;(n.state = s.Unloaded),
          (n.ctorPromise = new t.Q()),
          (n.initPromise = new t.Q()),
          (n.module = void 0)
      }
    }
    const r = 'Data not present.',
      a = new i.Z('market')
    class Market {
      constructor() {
        ;(this.typeLookup = new e.cj()),
          (this.store = {}),
          (this.moduleRegistry = {}),
          (this.firstUpdatePromises = {})
      }
      register(e, t, i) {
        const n = this.typeLookup.getKeyByType(t, !0)
        if (this.moduleRegistry[n])
          throw Error('Data can only be registered to one Module')
        ;(this.moduleRegistry[n] = e),
          (this.store[n] = i),
          i.commit(),
          this.firstUpdatePromises[n] &&
            (this.firstUpdatePromises[n].resolve(this.store[n]),
            delete this.firstUpdatePromises[n])
      }
      unregister(e, t) {
        const i = this.typeLookup.getKeyByType(t, !0)
        if (!this.moduleRegistry[i])
          throw Error('No Data was registered to the Module')
        delete this.moduleRegistry[i], delete this.store[i]
      }
      getData(e) {
        const t = this.typeLookup.getKeyByType(e)
        if (t in this.store) return this.store[t]
        throw Error(r)
      }
      waitForData(e) {
        const n = this.typeLookup.getKeyByType(e, !0)
        return n in this.store
          ? Promise.resolve(this.store[n])
          : (this.firstUpdatePromises[n] ||
              ((this.firstUpdatePromises[n] = new t.Q()),
              setTimeout(() => {
                i.Z.level >= 3 &&
                  !(n in this.store) &&
                  a.debug(`still waiting for ${e.name}-data after 5 seconds`)
              }, 5e3)),
            this.firstUpdatePromises[n].nativePromise())
      }
      tryGetData(e) {
        try {
          return this.getData(e)
        } catch (e) {
          if (e.message !== r) throw (a.error('tryGetData', e.message), e)
        }
        return null
      }
      debugData() {
        const e = {}
        for (const t in this.moduleRegistry) {
          const i = this.moduleRegistry[t]
          i && (e[i.name] || (e[i.name] = []), e[i.name].push(this.store[t]))
        }
        return Object.freeze(e)
      }
      getModuleNameFromData(e) {
        const t = this.typeLookup.getKeyByType(e)
        if (t) {
          const e = this.moduleRegistry[t]
          if (e) return e.name
        }
        throw Error(r)
      }
    }
    var l = o(63432)
    const c = new i.Z('command-binder')
    class CommandBinder {
      constructor() {
        ;(this.typeLookup = new e.cj()),
          (this.bindings = {}),
          (this.queuedCommands = {}),
          (this.hookedCommands = {}),
          (this.resetHooks = () => {
            this.hookedCommands = {}
          }),
          (this.issueCommand = this.issueCommand.bind(this)),
          (this.issueCommandWhenBound = this.issueCommandWhenBound.bind(this))
      }
      addBinding(e, t) {
        const i = this.typeLookup.getKeyByType(e, !0)
        if (this.bindings[i])
          throw Error(`Command ${i} already bound to a callback`)
        ;(this.bindings[i] = t), this.callQueuedCommands(i)
        return {
          renew: () => {
            this.bindings[i] !== t && this.addBinding(e, t)
          },
          cancel: () => this.removeBinding(e, t),
          active: this.bindings[i] === t
        }
      }
      removeBinding(e, t) {
        const i = this.typeLookup.getKeyByType(e)
        if (!i) return void c.debug('Trying to unbind unbound command')
        this.bindings[i] === t
          ? delete this.bindings[i]
          : c.debug('Trying to unbind unbound callback')
      }
      issueCommand(e, t = !0) {
        const i = this.typeLookup.getKeyByInstance(e),
          n = this.bindings[i]
        return n
          ? this.issueCommandHelper(e, i, n, t)
          : Promise.reject('Command not bound: ' + e.id)
      }
      issueCommandHelper(e, t, i, n = !0) {
        return this.hookedCommands[t] && !this.hookedCommands[t].resolving
          ? this.issueHookCommand(e, t)
          : i(e.payload)
      }
      issueCommandWhenBound(e) {
        const i = new t.Q()
        return (
          this.issueCommand(e)
            .then((e) => i.resolve(e))
            .catch((t) => {
              const n = this.typeLookup.getKeyByInstance(e, !0)
              this.queuedCommands[n] || (this.queuedCommands[n] = []),
                this.queuedCommands[n].push({ command: e, deferred: i })
            }),
          i.nativePromise()
        )
      }
      callQueuedCommands(e) {
        const t = []
        this.queuedCommands[e] &&
          (this.queuedCommands[e].forEach((e) => {
            t.push(
              this.issueCommand(e.command).then((t) => e.deferred.resolve(t))
            )
          }),
          Promise.all(t).then(() => {
            delete this.queuedCommands[e]
          }))
      }
      hookCommand(e, t, i) {
        const n = this.typeLookup.getKeyByType(e, !0)
        if (this.hookedCommands[n]) {
          if (t && null !== this.hookedCommands[n].preCommandCallback)
            throw Error(`Command ${e.name} has already been pre hooked`)
          if (!t && null !== this.hookedCommands[n].postCommandCallback)
            throw Error(`Command ${e.name} has already been post hooked`)
        } else
          this.hookedCommands[n] = {
            preCommandCallback: null,
            postCommandCallback: null,
            resolving: !1
          }
        t
          ? (this.hookedCommands[n].preCommandCallback = i)
          : (this.hookedCommands[n].postCommandCallback = i)
      }
      async issueHookCommand(e, t) {
        const i = this.hookedCommands[t],
          n = this.bindings[t],
          s = e.payload,
          r = i.preCommandCallback,
          o = i.postCommandCallback
        try {
          r && (await r(s)), (i.resolving = !0)
          const a = await this.issueCommandHelper(e, t, n, !0)
          return (i.resolving = !1), o && (await o(s)), a
        } catch (e) {
          throw Error(`Could not completely issueHookCommand - ${e}`)
        }
      }
    }
    var h = o(84303),
      d = o(76701),
      u = o(84561),
      p = o(21479)
    class Profiler {
      constructor() {
        ;(this.phaseTimes = []),
          (this.modules = {}),
          this.addAppPhase(p.nh.UNINITIALIZED),
          (window.profilingData = {
            phaseTimes: this.phaseTimes,
            modules: this.modules
          })
      }
      addAppPhase(e) {
        this.phaseTimes[e] = Date.now()
      }
      addModuleLoadTime(e, t, i, n) {
        const s = n.map((e) => e.moduleName).join(','),
          r =
            (n.reduce((e, t) => e + t.finishAwait - t.startAwait, 0) /
              (i - t)) *
            100
        this.modules[e] = [e, e, null, t, i, null, r, s]
      }
    }
    var m = o(8150),
      g = o(96909)
    const f = new i.Z('engine')
    let v = h.A.End
    class Engine {
      constructor(e = !1) {
        ;(this.moduleLookup = {}),
          (this.componentLookup = {}),
          (this.deactivatedHack = !1),
          (this.currentApplication = null),
          (this.moduleProfiler = new Profiler()),
          (this.commandBinder = new CommandBinder()),
          (this.market = new Market()),
          (this.messageBus = new l.Y()),
          (this.engineGenerators = new d.ZP()),
          (this.layers = new u.o()),
          (this.moduleLoader = new ModuleLoader()),
          (this.symbolLoader = new g.m()),
          (this.afterPhasePromises = []),
          (this.afterPhaseListenerCount = []),
          this.resetPromises(),
          this.subscribe(m.LZ, (e) => this.moduleProfiler.addAppPhase(e.phase))
      }
      async loadApplication(e, t, i) {
        if (e === this.currentApplication)
          throw Error('Application already loaded')
        const n = (
            this.currentApplication ? this.currentApplication.getManifest() : []
          ).map((e) => e.type),
          s = e.getManifest(),
          r = s.map((e) => e.type),
          o = this.currentApplication
        this.currentApplication = null
        const a = n.filter((e) => -1 === r.indexOf(e)),
          l = a.filter((e) => 'symbol' != typeof e),
          c = a.filter((e) => 'symbol' == typeof e),
          h = [
            ...l.map((e) => this.unloadModule(e)),
            ...c.map((e) => this.unloadModuleBySymbol(e))
          ]
        o && h.push(o.unload(this))
        const d = s.filter((e) => -1 === n.indexOf(e.type))
        for (const e of d)
          'symbol' == typeof e.type
            ? this.symbolLoader.moduleRegistered(e.type) ||
              this.registerModule(e)
            : this.moduleLoader.moduleRegistered(e.type) ||
              this.registerModule(e)
        if (h.length)
          try {
            await Promise.all(h)
          } catch (e) {
            f.error(e), t && t(e)
          }
        try {
          ;(this.currentApplication = e),
            await e.load(this, { coldStart: null === o, autoPlay: i })
        } catch (e) {
          f.error(e), t && t(e)
        }
      }
      registerModule(e) {
        if (this.currentApplication)
          throw Error('Cannot register modules while application is running')
        'symbol' == typeof e.type
          ? this.symbolLoader.registerModule(e.type, e.promise)
          : this.moduleLoader.registerModule(e.type, e.promise)
      }
      loadModule(e) {
        const t = e
        this.moduleLoadInjectionHook &&
          (t.config = this.moduleLoadInjectionHook(t.type, t.config || {}))
        const i = new EngineContext(this),
          n = Date.now(),
          s = this.moduleLoader.loadModule(i, t.type, t.config)
        return (
          s.ctorPromise.then(
            (e) =>
              (this.moduleLookup[this.moduleLoader.getTypeID(t.type)] = {
                module: e,
                initialized: !1
              })
          ),
          s.initPromise.then((e) => {
            this.moduleProfiler.addModuleLoadTime(
              e.name,
              n,
              Date.now(),
              i.getLoadedDependencies()
            ),
              (this.moduleLookup[
                this.moduleLoader.getTypeID(t.type)
              ].initialized = !0)
          }),
          s.initPromise.nativePromise()
        )
      }
      loadModuleBySymbol(e) {
        const t = e,
          i = String(t.type)
        this.moduleLoadInjectionHook &&
          (t.config = this.moduleLoadInjectionHook(i, t.config || {}))
        const n = new EngineContext(this),
          s = Date.now(),
          r = this.symbolLoader.loadModule(n, t.type, t.config)
        return (
          r.ctorPromise.then(
            (e) =>
              (this.moduleLookup[i] = {
                symbol: t.type,
                module: e,
                initialized: !1
              })
          ),
          r.initPromise.then((e) => {
            this.moduleProfiler.addModuleLoadTime(
              e.name,
              s,
              Date.now(),
              n.getLoadedDependencies()
            ),
              (this.moduleLookup[i].initialized = !0)
          }),
          r.initPromise.nativePromise()
        )
      }
      setLoadInjection(e) {
        if (void 0 !== this.moduleLoadInjectionHook)
          throw Error('Hook already registered')
        this.moduleLoadInjectionHook = e
      }
      async unloadModule(t) {
        if (!this.moduleLoader.moduleLoaded(t))
          return void f.debug(`${(0, e.HS)(t)} module already unloaded`)
        f.debug(`Unloading ${(0, e.HS)(t)} module`)
        const i = await this.getModule(t),
          n = this.getModuleIndex(i)
        this.componentLookup[n] &&
          (await Promise.all(
            this.componentLookup[n].map(async (e) => {
              await this.removeComponent(i, e.component), e.component.dispose()
            })
          ),
          (this.componentLookup[n] = [])),
          this.moduleLoader.unloadModule(t),
          i.dispose(this)
      }
      async unloadModuleBySymbol(e) {
        if (!this.symbolLoader.moduleLoaded(e))
          return void f.debug(`${String(e)} module already unloaded`)
        f.debug(`Unloading ${String(e)} module`)
        const t = await this.getModuleBySymbol(e),
          i = this.getModuleIndex(t)
        this.componentLookup[i] &&
          (await Promise.all(
            this.componentLookup[i].map(async (e) => {
              await this.removeComponent(t, e.component), e.component.dispose()
            })
          ),
          (this.componentLookup[i] = [])),
          this.symbolLoader.unloadModule(e),
          t.dispose(this)
      }
      async waitForLoadingModules() {
        await Promise.all([
          this.moduleLoader.whenQueueEmpties(),
          this.symbolLoader.whenQueueEmpties()
        ])
      }
      async getModule(e) {
        return this.moduleLoader.getModule(e)
      }
      getModuleBySymbol(e) {
        return this.symbolLoader.getModule(e)
      }
      getModuleSync(e) {
        return this.moduleLoader.getModuleSync(e)
      }
      getComponentByType(e) {
        for (const t in this.moduleLookup) {
          const i = this.moduleLookup[t].module,
            n = this.getModuleIndex(i),
            s = this.componentLookup[n] || []
          for (const t of s) if (t.component instanceof e) return t.component
        }
        return null
      }
      async addComponent(e, t) {
        const i = this.getModuleIndex(e)
        let n = this.componentLookup[i]
        n || (this.componentLookup[i] = n = [])
        let s = -1
        for (let e = 0; e < n.length; e++)
          if (n[e].component === t) {
            s = e
            break
          }
        if (
          (-1 === s &&
            ((s = n.push({ component: t, active: !1 }) - 1), t.init()),
          n[s].active)
        )
          throw Error('Tried to add already active component: ' + typeof t)
        await t.activate(this), (n[s].active = !0)
      }
      async removeComponent(e, t) {
        const i = this.getModuleIndex(e),
          n = this.componentLookup[i]
        if (n) {
          let e = null
          for (const i of n)
            if (i.component === t) {
              e = i
              break
            }
          e && e.active && (await t.deactivate(this), (e.active = !1))
        }
      }
      tick() {
        if (this.deactivatedHack) return
        if (v !== h.A.End)
          throw Error(
            'Engine.tick called outside of waiting. Did the engine get called recursively?!'
          )
        ;(v = h.A.Begin), this.resolveAfterPhase(h.A.Begin)
        const e = performance.now(),
          t = this.lastTick ? e - this.lastTick : 16
        ;(this.lastTick = e), (v = h.A.Logic)
        try {
          for (const e in this.moduleLookup) {
            const i = this.moduleLookup[e]
            i && i.initialized && i.module.onUpdate(t)
          }
        } catch (e) {
          throw (f.error(e), e)
        }
        this.resolveAfterPhase(h.A.Logic),
          this.engineGenerators.processGenerators(d.p3.Phase, h.A.Logic)
        try {
          this.renderComponents(t)
        } catch (e) {
          throw (f.error(e), e)
        }
        try {
          ;(v = h.A.Render),
            this.resolveAfterPhase(h.A.Render),
            this.engineGenerators.processGenerators(d.p3.Phase, h.A.Render),
            (v = h.A.End),
            this.resolveAfterPhase(h.A.End),
            this.engineGenerators.processGenerators(d.p3.None),
            this.engineGenerators.processGenerators(d.p3.Promise),
            this.engineGenerators.processGenerators(d.p3.Duration)
        } catch (e) {
          throw (f.error(e), e)
        }
      }
      subscribe(e, t, i = l.Q.PERMANENT) {
        return this.messageBus.subscribe(e, t, i)
      }
      unsubscribe(e, t) {
        this.messageBus.unsubscribe(e, t)
      }
      broadcast(e) {
        this.messageBus.broadcast(e)
      }
      claimRenderLayer(e) {
        return this.layers.claimLayer(e)
      }
      getRenderLayer(e) {
        return this.layers.getLayer(e)
      }
      disposeRenderLayer(e) {
        this.layers.disposeLayer(e)
      }
      startGenerator(e) {
        this.engineGenerators.startGenerator(e)
      }
      stopGenerator(e) {
        this.engineGenerators.stopGenerator(e)
      }
      after(e) {
        return (
          this.afterPhaseListenerCount[e]++,
          this.afterPhasePromises[e].nativePromise()
        )
      }
      getModuleIndex(e) {
        for (const t in this.moduleLookup)
          if (this.moduleLookup[t] && this.moduleLookup[t].module === e)
            return t
        return ''
      }
      *getComponents() {
        for (const e in this.moduleLookup) {
          const t = this.componentLookup[e]
          if (t) for (const e of t) yield e
        }
      }
      toggleRendering(e, t) {
        const i = this.getModuleIndex(e),
          n = this.componentLookup[i]
        if (n) for (const e of n) e.active = t
      }
      renderComponents(e) {
        for (const t in this.moduleLookup) {
          const i = this.componentLookup[t]
          if (i)
            for (const t of i)
              t.active &&
                t.component.beforeRender &&
                t.component.beforeRender(e)
        }
        for (const t in this.moduleLookup) {
          if (!t) continue
          const i = this.componentLookup[t]
          if (i) for (const t of i) t.active && t.component.render(e)
        }
      }
      resetPromises() {
        this.resetAfterPhasePromises()
      }
      resetAfterPhasePromises() {
        this.resetAfterPhasePromise(h.A.Logic),
          this.resetAfterPhasePromise(h.A.Render),
          this.resetAfterPhasePromise(h.A.Begin),
          this.resetAfterPhasePromise(h.A.End)
      }
      resetAfterPhasePromise(e) {
        ;(this.afterPhasePromises[e] = new t.Q()),
          (this.afterPhaseListenerCount[e] = 0)
      }
      resolveAfterPhase(e) {
        this.afterPhaseListenerCount[e] > 0 &&
          (this.afterPhasePromises[e].resolve(), this.resetAfterPhasePromise(e))
      }
      deactivate() {
        for (const e in this.moduleLookup) {
          const t = this.moduleLookup[e]
          if (t && t.initialized)
            if (t.symbol) this.unloadModuleBySymbol(t.symbol)
            else {
              const e = this.getModuleType(t.module)
              e && this.unloadModule(e)
            }
        }
        this.deactivatedHack = !0
      }
      setXrFrame(e) {
        this.xrFrame = e
      }
      getXrFrame() {
        return this.xrFrame
      }
      getModuleType(e) {
        for (const t in this.moduleLookup) {
          const i = this.moduleLookup[t]
          if (i && i.module === e) return this.moduleLoader.getTypeFromTypeID(t)
        }
        return null
      }
      get msgBus() {
        return this.messageBus
      }
    }
    var y = o(36822),
      b = o(41596),
      S = o(60771),
      E = o(44218),
      T = o(8445),
      w = o(54791),
      _ = o(18469),
      M = o(56365),
      x = o(46072),
      A = o(20664),
      O = o(4305),
      D = o(29539),
      C = o(66542),
      P = o(20331),
      I = o(77719),
      N = o(56656),
      L = o(23889),
      R = o(20021),
      k = o(2640),
      B = o(81220),
      U = o(15030),
      F = o(55402),
      V = o(31778),
      H = o(55305),
      G = o(24930),
      z = o(69941),
      W = o(37238),
      j = o(93263),
      K = o(17399),
      q = o(66225),
      Z = o(84285),
      Y = o(54177),
      $ = o(94625),
      Q = o(63781),
      X = o(44055),
      J = o(17206),
      ee = o(62881),
      te = o(55130),
      ie = o(42952),
      ne = o(86122),
      se = o(87738),
      re = o(92895),
      oe = o(32470),
      ae = o(50294),
      le = o(26589),
      ce = o(13988),
      he = o(12805),
      de = o(13827),
      ue = o(31657)
    const pe = o(65307).default
    var me = o(39300),
      ge = o(41452),
      fe = o(65006),
      ve = o(67394),
      ye = o(94329),
      be = o(27088),
      Se = o(70384),
      Ee = o(94015),
      Te = o(19917),
      we = o(86097),
      _e = o(55034),
      Me = o(16400),
      xe = o(51561),
      Ae = o(32086),
      Oe = o(32306),
      De = o(11426),
      Ce = o(63739),
      Pe = o(35597),
      Ie = o(7562),
      Ne = o(70273),
      Le = o(28926),
      Re = o(36210),
      ke = o(41591),
      Be = o(76541),
      Ue = o(14880),
      Fe = o(79355),
      Ve = o(35300)
    const He = new i.Z('AB')
    class AB {
      constructor(e) {
        this.values = {}
        for (const t in e) {
          const i = e[t]
          if (i && i.ab)
            try {
              this.values[t] = Ge(i.ab)
            } catch (e) {
              He.warn(`Skipping key ${t}, could not pick: ${e}`)
            }
        }
      }
      get(e) {
        return this.values[e]
      }
      serialize() {
        return Object.keys(this.values).map((e) => `${e}:${this.values[e]}`)
      }
    }
    function Ge(e) {
      if (0 === e.length)
        throw Error('A/B cannot choose from an empty choice array')
      let t = 0
      for (const i of e) {
        if (void 0 === i.value || void 0 === i.weight || i.weight < 0)
          throw Error(`Malformed AB choice: ${i}`)
        t += i.weight
      }
      const i = Math.random() * t
      let n = 0
      for (const t of e) if (((n += t.weight), i <= n)) return t.value
    }
    var ze = o(2388),
      We = o(44060),
      je = o(23502),
      Ke = o(39504),
      qe = o(87182),
      Ze = o(30060),
      Ye = o(28963),
      $e = o(66999),
      Qe = o(77037),
      Xe = o(73844),
      Je = o(69808),
      et = o(20601),
      tt = o(80301),
      it = o(40324),
      nt = o(17838),
      st = o(34369)
    const rt = new i.Z('showcase-settings/quality')
    var ot = o(24844),
      at = o(37381),
      lt = o(96216),
      ct = o(29422),
      ht = o(10757),
      dt = o(23847),
      ut = o(68655),
      pt = o(89683),
      mt = o(95469)
    class EngineTick {
      constructor(e, t, i) {
        ;(this.engine = e),
          (this.onErrorCallback = i),
          (this.ticking = !1),
          (this.start = () => {
            this.ticking = !0
          }),
          (this.stop = () => {
            this.ticking = !1
          }),
          (this.tick = (e, t) => {
            if (this.ticking)
              try {
                this.engine.setXrFrame(t), this.engine.tick()
              } catch (e) {
                this.stop(), this.onErrorCallback(e)
              }
          }),
          t.setAnimationLoop(this.tick)
      }
    }
    var gt = o(26587),
      ft = o(38420),
      vt = o(50988),
      yt = o(44283)
    class ControllerProxy {
      constructor(e, t) {
        ;(this.proxy = e), (this.target = t)
      }
      beginExternalTransition() {
        this.proxy.activeSession(this) && this.target.beginExternalTransition()
      }
      endExternalTransition() {
        this.proxy.activeSession(this) && this.target.endExternalTransition()
      }
      updateCameraPosition(e) {
        this.proxy.activeSession(this) && this.target.updateCameraPosition(e)
      }
      updateCameraRotation(e) {
        this.proxy.activeSession(this) && this.target.updateCameraRotation(e)
      }
      updateCameraFocus(e) {
        this.proxy.activeSession(this) && this.target.updateCameraFocus(e)
      }
      moveTo(e) {
        return this.proxy.activeSession(this)
          ? this.target.moveTo(e)
          : t.Q.resolve()
      }
    }
    class CameraPoseProxy {
      constructor(e, t) {
        ;(this.controller = e), (this.data = t), (this.proxies = [])
      }
      get pose() {
        return this.data
      }
      activeSession(e) {
        if (0 === this.proxies.length) return !1
        return this.proxies[this.proxies.length - 1].controller === e
      }
      newSession(e) {
        let t = null
        if (-1 !== this.proxies.findIndex((t) => t.requester === e))
          throw new Error('Cannot create two sessions with the same requester')
        return (0, yt.k1)(
          () => {
            if (!t) {
              if (this.proxies.length > 0) {
                const e = this.proxies[this.proxies.length - 1]
                e.requester.onAccessRevoked(e.controller)
              }
              ;(t = new ControllerProxy(this, this.controller)),
                this.proxies.push({ controller: t, requester: e }),
                e.onAccessGranted(t)
            }
          },
          () => {
            if (t) {
              const e = this.proxies.findIndex((e) => e.controller === t)
              if (-1 !== e) {
                const t = this.proxies[e],
                  i = e === this.proxies.length - 1
                if (
                  (i && t.requester.onAccessRevoked(t.controller),
                  this.proxies.splice(e, 1),
                  this.proxies.length > 0 && i)
                ) {
                  const e = this.proxies[this.proxies.length - 1]
                  e.requester.onAccessGranted(e.controller)
                }
              }
            }
          }
        )
      }
    }
    var bt = o(59088)
    var St = o(81063),
      Et = o(80693),
      Tt = o(35934),
      wt = o(73710),
      _t = o(51058)
    var Mt = o(87220)
    const xt = new i.Z('showcase'),
      At = window.MP_PREFETCHED_MODELDATA
    class Showcase {
      constructor(e, i = {}, n = !1) {
        ;(this.inWorkshop = e),
          (this.settingOverrides = i),
          (this.editModePreferred = n),
          (this.externalCanvas = !1),
          (this.urlValues = S.AO()),
          (this.storeQueue = new P.RequestQueue()),
          (this.apiQueue = new P.RequestQueue()),
          (this.analyticsQueue = new P.RequestQueue({ concurrency: 1 })),
          (this.errorPromise = new t.Q()),
          (this.quickstart =
            '1' === this.urlValues.qs || void 0 !== this.urlValues.note),
          (this.autoplay = !1),
          (this.forceLogin = !1),
          (this.openingNote = !1),
          (this.needsFramebustToPlayXR = !0),
          (this.uiLoading = Promise.resolve()),
          (this.stopTourHook = async (e) => {
            const t = e.market.tryGetData(z.k3)
            t &&
              t.tourPlaying &&
              (await e.commandBinder.issueCommand(new lt.vy()),
              await (0, ht.gw)(10))
          })
        const { container: s } = this.settingOverrides
        ;(0, Tt.C)(this.urlValues.applicationKey || null),
          (this.apiHost = ((e, t) => {
            const i = e.apiHost || t.apiHost
            if (i) {
              const e = (0, fe.KK)(i)
              if (e) return e
            }
            return window.location.origin
          })(this.urlValues, this.settingOverrides)),
          i.canvas && ((this.externalCanvas = !0), (this.canvas = i.canvas)),
          this.apiHost !== window.location.origin &&
            (this.settingOverrides.apiHost = this.apiHost),
          (this.container = s || document.body),
          (this.modelUrls = (0, fe.sU)(
            this.urlValues.m || this.urlValues.model,
            this.apiHost
          )),
          (this.modelUrl = `${this.modelUrls.urlBase}/api/v1/player/models/${this.modelUrls.sid}`),
          (this.modelId = this.modelUrls.sid)
      }
      getManifest() {
        const e = [
          {
            type: y.default,
            promise: () => Promise.resolve().then(o.bind(o, 36822))
          },
          {
            type: G.default,
            promise: () => Promise.resolve().then(o.bind(o, 24930))
          },
          {
            type: dt.default,
            promise: () => Promise.resolve().then(o.bind(o, 23847))
          },
          {
            type: g.y.SDK,
            promise: () => Promise.resolve().then(o.bind(o, 24025))
          },
          {
            type: B.default,
            promise: () => Promise.resolve().then(o.bind(o, 81220))
          },
          {
            type: k.default,
            promise: () => Promise.resolve().then(o.bind(o, 2640))
          },
          {
            type: be.default,
            promise: () => Promise.resolve().then(o.bind(o, 27088))
          },
          {
            type: C.default,
            promise: () => Promise.resolve().then(o.bind(o, 66542))
          },
          {
            type: E.default,
            promise: () => Promise.resolve().then(o.bind(o, 44218))
          },
          {
            type: K.default,
            promise: () => Promise.resolve().then(o.bind(o, 17399))
          },
          {
            type: M.default,
            promise: () => Promise.resolve().then(o.bind(o, 56365))
          },
          {
            type: x.default,
            promise: () => Promise.resolve().then(o.bind(o, 46072))
          },
          {
            type: ge.default,
            promise: () => Promise.resolve().then(o.bind(o, 41452))
          },
          {
            type: N.default,
            promise: () => Promise.resolve().then(o.bind(o, 56656))
          },
          {
            type: g.y.SHOWCASE_ANALYTICS,
            promise: () => Promise.resolve().then(o.bind(o, 45386))
          },
          {
            type: g.y.WEBGL_RENDERER,
            promise: () => Promise.resolve().then(o.bind(o, 42090))
          },
          {
            type: b.default,
            promise: () => Promise.resolve().then(o.bind(o, 41596))
          },
          this.externalCanvas
            ? {
                type: g.y.CANVAS,
                promise: () => Promise.resolve().then(o.bind(o, 37554))
              }
            : {
                type: g.y.CANVAS,
                promise: () => Promise.resolve().then(o.bind(o, 86718))
              },
          {
            type: g.y.INPUT,
            promise: () => Promise.resolve().then(o.bind(o, 5107))
          },
          {
            type: Ee.default,
            promise: () => Promise.resolve().then(o.bind(o, 94015))
          },
          {
            type: I.default,
            promise: () => Promise.resolve().then(o.bind(o, 77719))
          },
          {
            type: mt.default,
            promise: () => Promise.resolve().then(o.bind(o, 95469))
          },
          {
            type: gt.F,
            promise: () => Promise.resolve().then(o.bind(o, 37339))
          },
          {
            type: de.default,
            promise: () => Promise.resolve().then(o.bind(o, 13827))
          },
          {
            type: w.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 54791))
          },
          {
            type: L.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 23889))
          },
          {
            type: W.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 37238))
          },
          {
            type: g.y.MODEL_MESH,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 28745))
          },
          {
            type: j.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 93263))
          },
          {
            type: De.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 11426))
          },
          {
            type: q.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 66225))
          },
          {
            type: Oe.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 32306))
          },
          {
            type: he.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 12805))
          },
          {
            type: Ie.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 7562))
          },
          {
            type: pe,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 65307))
          },
          {
            type: ce.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 13988))
          },
          {
            type: ee.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 62881))
          },
          {
            type: Fe.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 79355))
          },
          {
            type: Z.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 84285))
          },
          {
            type: Y.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 54177))
          },
          {
            type: $.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 94625))
          },
          {
            type: te.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 55130))
          },
          {
            type: ie.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 42952))
          },
          {
            type: g.y.ORTHOGRAPHIC_CONTROLS,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 35726))
          },
          {
            type: ue.default,
            promise: () => Promise.resolve().then(o.bind(o, 31657))
          },
          {
            type: Ae.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 32086))
          },
          {
            type: F.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 55402))
          },
          {
            type: V.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 31778))
          },
          {
            type: D.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 29539))
          },
          {
            type: Ue.default,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 14880))
          },
          {
            type: g.y.MESH_QUERY,
            promise: () =>
              Promise.all([o.e(947), o.e(321)]).then(o.bind(o, 26203))
          },
          {
            type: g.y.MESH_TRIM_DATA,
            promise: () => o.e(828).then(o.bind(o, 97665))
          },
          { type: J.default, promise: () => o.e(136).then(o.bind(o, 17206)) },
          { type: Q.default, promise: () => o.e(136).then(o.bind(o, 63781)) },
          { type: X.default, promise: () => o.e(136).then(o.bind(o, 44055)) },
          {
            type: ve.default,
            promise: () => o.e(136).then(o.bind(o, 67394))
          },
          {
            type: oe.default,
            promise: () => o.e(136).then(o.bind(o, 32470))
          },
          {
            type: ae.default,
            promise: () => o.e(136).then(o.bind(o, 50294))
          },
          {
            type: ne.default,
            promise: () => o.e(136).then(o.bind(o, 86122))
          },
          {
            type: me.default,
            promise: () => o.e(136).then(o.bind(o, 39300))
          },
          {
            type: ke.default,
            promise: () => o.e(136).then(o.bind(o, 41591))
          },
          {
            type: se.default,
            promise: () => o.e(136).then(o.bind(o, 87738))
          },
          {
            type: re.default,
            promise: () => o.e(136).then(o.bind(o, 92895))
          },
          { type: R.default, promise: () => o.e(136).then(o.bind(o, 20021)) },
          {
            type: Se.default,
            promise: () => o.e(136).then(o.bind(o, 70384))
          },
          {
            type: Te.default,
            promise: () => o.e(136).then(o.bind(o, 19917))
          },
          { type: A.default, promise: () => o.e(136).then(o.bind(o, 20664)) },
          {
            type: Ce.default,
            promise: () => o.e(136).then(o.bind(o, 63739))
          },
          {
            type: le.default,
            promise: () => o.e(136).then(o.bind(o, 26589))
          },
          {
            type: ot.default,
            promise: () => o.e(136).then(o.bind(o, 24844))
          },
          {
            type: Be.default,
            promise: () => o.e(136).then(o.bind(o, 76541))
          },
          { type: O.default, promise: () => o.e(136).then(o.bind(o, 4305)) },
          {
            type: Le.default,
            promise: () => o.e(136).then(o.bind(o, 28926))
          },
          {
            type: Ne.default,
            promise: () => o.e(136).then(o.bind(o, 70273))
          },
          {
            type: Re.default,
            promise: () => o.e(136).then(o.bind(o, 36210))
          },
          {
            type: we.default,
            promise: () => o.e(136).then(o.bind(o, 86097))
          },
          {
            type: _e.default,
            promise: () => o.e(136).then(o.bind(o, 55034))
          },
          {
            type: Me.default,
            promise: () => o.e(136).then(o.bind(o, 16400))
          },
          {
            type: xe.default,
            promise: () => o.e(136).then(o.bind(o, 51561))
          },
          {
            type: g.y.MODEL_RATING,
            promise: () => o.e(136).then(o.bind(o, 76265))
          },
          {
            type: g.y.SEARCH,
            promise: () => o.e(464).then(o.bind(o, 22569))
          },
          {
            type: g.y.DWELL_ANALYTICS,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 18574))
          },
          {
            type: g.y.SCAN_INFO,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 96811))
          },
          {
            type: g.y.MEASUREMENT_MODE,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 35165))
          },
          {
            type: g.y.TOUR_CONTROLS,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 27166))
          },
          {
            type: g.y.TOUR_DATA,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 81627))
          },
          {
            type: g.y.VIDEO_RECORDER,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 15903))
          },
          {
            type: g.y.WEBVR,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 58129))
          },
          {
            type: g.y.WEBXR,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 75708))
          },
          {
            type: g.y.TRASH,
            promise: () =>
              Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 86102))
          },
          {
            type: g.y.SCENE,
            promise: () =>
              Promise.all([
                o.e(764),
                o.e(47),
                o.e(423),
                o.e(356),
                o.e(584),
                o.e(524),
                o.e(371)
              ]).then(o.bind(o, 45277))
          }
        ]
        return (
          '0' !== this.urlValues.tiles
            ? e.push({
                type: g.y.SWEEP_PANO,
                promise: () =>
                  Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 52061))
              })
            : e.push({
                type: g.y.SWEEP_PANO,
                promise: () =>
                  Promise.all([o.e(79), o.e(833)]).then(o.bind(o, 30268))
              }),
          e
        )
      }
      getAppPhases(e) {
        return {
          [p.nh.UNINITIALIZED]: [],
          [p.nh.WAITING]: [
            (async () => {
              await e.getModule(be.default)
            })()
          ],
          [p.nh.LOADING]: [
            (async () => (await e.getModule(be.default)).waitForPlaying)()
          ],
          [p.nh.STARTING]: [
            (async () => (await e.getModule(F.default)).waitForFirstRender)()
          ],
          [p.nh.PLAYING]: [
            (async () => (await e.getModule(F.default)).waitForFlyin)()
          ],
          [p.nh.ERROR]: [this.errorPromise.nativePromise()]
        }
      }
      getStorageProvider() {
        var e, t
        return 0 ===
          (null === (e = Et.t.config) || void 0 === e ? void 0 : e.maas) ||
          '0' ===
            (null === (t = this.urlValues) || void 0 === t ? void 0 : t.mds)
          ? ft.Xq.JSONSTORE
          : ft.Xq.MDS
      }
      setError(e) {
        this.errorPromise.reject(e), this.engineTick && this.engineTick.stop()
      }
      async load(e, t) {
        if (
          ((this.engine = e),
          this.engine.loadModule({
            type: y.default,
            config: { tasks: this.getAppPhases(e) }
          }),
          this.engine.loadModule({ type: G.default, config: { useGUI: !0 } }),
          this.engine.loadModule({ type: dt.default }),
          e.getModule(y.default).then((i) => {
            i.updateActiveApp(p.Mx.SHOWCASE),
              t.coldStart || e.broadcast(new m.pB(p.Mx.SHOWCASE))
          }),
          e.market.waitForData(p.pu).then((t) => {
            t.onChanged(async () => {
              const i = this.urlValues.oops
              if (t.phase === p.nh.ERROR || i) {
                const n = t.error,
                  s = await e.getModule(Ee.default)
                throw (
                  (n instanceof Ve.vx || 'unsupported' === i
                    ? s.showError(Ee.ErrorType.UNSUPPORTED)
                    : n instanceof Ve.Gw || 'webgl' === i
                    ? s.showError(Ee.ErrorType.WEBGL)
                    : s.showError(Ee.ErrorType.GENERIC),
                  n)
                )
              }
            })
          }),
          !t.coldStart)
        )
          return void (this.uiLoading = this.loadUI(!0))
        let n
        xt.info('Showcase app version: 3.1.54.4-0-ga1625c0c3'),
          this.externalCanvas ||
            ((this.canvas = document.createElement('canvas')),
            (this.canvas.className = 'webgl-canvas'),
            (n = document.querySelector('#canvas-container')))
        const s = document.querySelector('#app-container'),
          r = document.querySelector('main') || document.body,
          o = parseInt(this.urlValues.log, 10)
        this.urlValues.hasOwnProperty('log') && !isNaN(o) && (i.Z.level = o),
          this.quickstart &&
            xt.info(
              'Quickstart engaged. Hold on to your knickers. ' +
                performance.now()
            )
        const a = this.engine.loadModule({
          type: C.default,
          config: {
            baseUrl: this.modelUrls.urlBase,
            apiQueue: this.apiQueue,
            storeQueue: this.storeQueue,
            prefetchedData:
              '1' !== this.urlValues.acl || '0' !== this.urlValues.prefetch
                ? At
                : void 0,
            preloadConfig:
              '1' !== this.urlValues.acl || '0' !== this.urlValues.prefetch
                ? 'showcase'
                : void 0
          }
        })
        this.engine.loadModule({
          type: ge.default,
          config: { queue: this.apiQueue }
        }),
          this.engine.loadModule({ type: Ee.default })
        const l = (await a).getApi(),
          c =
            this.urlValues.applicationKey ||
            this.settingOverrides.applicationKey,
          h = this.loadSdkModule(l, c),
          d = !!c && (await h)
        if (d)
          try {
            await l.modelIsAccessible(this.modelId)
          } catch (e) {
            xt.error(e)
            throw (
              ((await this.engine.getModule(Ee.default)).showError(
                Ee.ErrorType.GENERIC
              ),
              e)
            )
          }
        this.engine.loadModuleBySymbol({
          type: g.y.WEBGL_RENDERER,
          config: {
            canvas: this.canvas,
            useWebGL2: '1' === this.urlValues.gl2,
            antialias: '1' === this.urlValues.aa,
            useEffectComposer:
              !(
                !this.settingOverrides ||
                !this.settingOverrides.hasOwnProperty('useEffectComposer')
              ) && !!this.settingOverrides.useEffectComposer,
            trackTextureUsage: '1' === this.urlValues.trackTextureUsage
          }
        }),
          this.engine.loadModule({ type: I.default }),
          this.engine.loadModule({
            type: b.default,
            config: { container: s }
          }),
          this.engine.loadModuleBySymbol({
            type: g.y.CANVAS,
            config: { canvas: this.canvas, container: n }
          }),
          this.engine.loadModule({ type: mt.default }),
          this.engine.loadModule({ type: de.default })
        const [u, f, v, E] = await Promise.all([
          e.getModule(C.default),
          e.getModuleBySymbol(g.y.WEBGL_RENDERER),
          e.getModule(G.default),
          e.getModule(I.default)
        ])
        this.engineTick = new EngineTick(this.engine, f.threeRenderer, (e) => {
          this.engine.getModule(Ee.default).then((t) => {
            this.setError(e), t.showError(Ee.ErrorType.GENERIC)
          })
        })
        const M = u.getApi()
        this.apiConfig = await M.getConfigs('showcase')
        const x = new AB(this.apiConfig),
          O =
            !this.urlValues.applicationKey &&
            ('roomnav_ab' in this.urlValues
              ? '1' === this.urlValues.roomnav_ab
              : x.get('roomnav_ab_1'))
        xt.debug('Roomnav AB ' + (O ? 'enabled' : 'disabled'))
        const P = M.user.getFlags('showcase/'),
          N = (0, et.HG)(parseFloat(this.urlValues.wts)),
          {
            labels: k,
            mt: B,
            roomnav: U,
            play: K,
            note: ee,
            searchMode: ce,
            search: fe,
            allowRating: Ne,
            tileset: Le
          } = this.urlValues,
          Re = M.user.loggedIn
        var He
        const Ge =
          !(!(He = this.modelId) || 11 !== He.length) &&
          this.getStorageProvider() === ft.Xq.MDS
        ;(this.openingNote = Ge && !!ee),
          (this.forceLogin = this.openingNote && !Re && !S.yL())
        const qe = !1,
          ht = P.has(Ze.b),
          ut = (0, _t.z)(navigator.language),
          pt = P.has(Je.B) ? '0' !== ce : '1' === ce,
          gt = P.has(Mt.i) ? '0' !== Ne : '1' === Ne,
          vt = this.inWorkshop && Re && gt,
          yt = P.has(ze.iT) ? '0' !== Le : void 0 !== Le
        let Et = this.editModePreferred
        this.editModePreferred &&
          this.forceLogin &&
          (xt.warn('Cannot start in edit mode. Need to login to view note.'),
          (Et = !1))
        const Tt = !('1' !== K && !t.autoPlay && !this.openingNote)
        ;(this.needsFramebustToPlayXR = S.Ot() && !S.PI('xr-spatial-tracking')),
          (this.autoplay =
            !this.forceLogin &&
            (!S.yL() || (Tt && !this.needsFramebustToPlayXR)))
        const Ot = {
          Features: {
            [$e.U]: !0,
            [ze.AN]: !0,
            [Ye.s]: !0,
            [ze.iT]: yt,
            [je.Nj]: '0' !== k,
            [We.r]: '0' !== B,
            [Xe.ws]: '0' !== this.urlValues.f,
            [Xe.Q5]:
              (void 0 === U && P.has(Xe.Q5)) || (void 0 !== U && '0' !== U),
            [Qe.EU]: N,
            [Ze.b]: ht,
            [Mt.i]: vt,
            [Je.B]: pt,
            [Ke.R]: qe,
            [St.AR]: P.has(St.AR),
            [Xe.u_]: !O,
            [wt.o]: !O,
            [Xe.gu]: !O
          },
          'User Preferences': {
            [H.F.UnitType]: ut,
            [H.F.MeasurementSnapping]: !0,
            [H.F.MeasurementContinuousLines]: !0,
            [H.F.MeasurementUserNudgeSeen]: !1,
            [H.F.NotesModeNudgeSeen]: !1,
            [H.F.NotesIntroModalSeen]: !1
          }
        }
        for (const e in Ot)
          for (const t in Ot[e]) {
            if (void 0 === Ot[e][t]) continue
            const i =
              'User Preferences' === e
                ? G.SettingPersistence.LOCAL_STORAGE
                : G.SettingPersistence.NONE
            v.registerSetting(e, t, Ot[e][t], !0, i)
          }
        const Dt = {
          [at.YS]: null,
          sid: this.modelId,
          quickstart: this.quickstart,
          lang: this.urlValues.lang,
          perf: this.urlValues.perf,
          perfInterval: this.urlValues.perfInterval
        }
        for (const e in Dt) v.updateSetting(e, Dt[e])
        if (this.settingOverrides)
          for (const e in this.settingOverrides)
            v.updateSetting(e, this.settingOverrides[e])
        this.loadInitialAppModules(x, f.gpuInfo, Ot),
          v.hasProperty(We.l) ||
            v.updateSetting(We.l, this.apiConfig.embedly_key),
          d ||
            (await this.loginToModel(this.modelId, M).catch((e) => {
              this.setError(e)
            })),
          this.openingNote && (await this.loginToNote()),
          await this.initWorkshopStorage(),
          this.loadInitialDataModules(this.modelId, t)
        const Ct = ((e, t) => new CameraPoseProxy(e, t))(
          E,
          (await e.market.waitForData(bt.M_)).pose
        )
        e.commandBinder.hookCommand(ct.ju, !0, () => this.stopTourHook(e)),
          e.commandBinder.hookCommand(lt.rU, !0, () => this.stopTourHook(e))
        try {
          await e.waitForLoadingModules()
        } catch (t) {
          this.setError(t), e.tick()
        }
        const [Pt, It] = await Promise.all([
            e.market.waitForData(T.T),
            e.market.waitForData(_.O)
          ]),
          { details: Nt, organizationId: Lt } = Pt.model
        document.title = Nt.name
        const Rt = It.pose
        !this.quickstart ||
          (Rt && (0, ye.Bw)(Rt.mode)) ||
          (xt.warn('Disabling quickstart. No panorama start position.'),
          (this.quickstart = !1),
          v.updateSetting('quickstart', !1))
        const {
          maxMeshQuality: kt,
          navPanoSize: Bt,
          zoomPanoSize: Ut,
          textureLODThreshold: Ft
        } = ((e, t) => {
          let i, n, s, r
          ;(0, S.tq)() || (0, S.w1)()
            ? (0, S.tq)() && (0, nt.W)(t)
              ? ((i = it.S7.ULTRA),
                (n = st.eE[st.SL.STANDARD]),
                (s = st.eE[st.SL.HIGH]),
                (r = 10))
              : ((i = it.S7.MEDIUM),
                (n = st.eE[st.SL.STANDARD]),
                (s = st.eE[st.SL.HIGH]),
                (r = 6))
            : ((i = it.S7.ULTRA),
              (n = st.eE[st.SL.HIGH]),
              (s = st.eE[st.SL.ULTRAHIGH]),
              (r = 20))
          try {
            i = e.maxmeshq ? (0, it.Pm)(parseInt(e.maxmeshq, 10)) : i
          } catch (t) {
            rt.warn(`Not a valid texture size: ${e.maxmeshq}`)
          }
          return (
            (n = e.maxtileq ? parseInt(e.maxtileq, 10) : n),
            (s = e.maxztileq ? parseInt(e.maxztileq, 10) : s),
            (r = e.lodtexth ? parseInt(e.lodtexth, 10) : r),
            {
              maxMeshQuality: i,
              navPanoSize: n,
              zoomPanoSize: s,
              textureLODThreshold: r
            }
          )
        })(this.urlValues, f.gpuInfo)
        xt.info({
          maxMeshQuality: kt,
          navPanoSize: Bt,
          zoomPanoSize: Ut,
          textureLODThreshold: Ft,
          gpuInfo: f.gpuInfo
        }),
          e
            .loadModuleBySymbol({
              type: g.y.SCENE,
              config: { cameraPoseProxy: Ct }
            })
            .then((e) => e.startLoading()),
          await this.engine.loadModuleBySymbol({
            type: g.y.SWEEP_PANO,
            config: { navPanoSize: Bt, zoomPanoSize: Ut }
          }),
          await this.engine.loadModule({ type: W.default }),
          this.quickstart &&
            (this.loadPanoControls(Et), this.engineTick.start()),
          await (
            await e.getModule(be.default)
          ).waitForPlaying,
          this.engine.loadModule({
            type: Fe.default,
            config: { container: this.container }
          })
        const Vt =
          P.has('features/meshtrim') && '0' !== this.urlValues.allowMeshTrim
        Vt &&
          this.engine.loadModuleBySymbol({
            type: g.y.MESH_TRIM_DATA,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModuleBySymbol({
            type: g.y.MODEL_MESH,
            config: {
              renderMeshGeometry: !0,
              maxQuality: kt,
              textureLOD:
                '2' === this.urlValues.texlod
                  ? tt.l.RAYCAST
                  : '0' === this.urlValues.texlod
                  ? tt.l.NONE
                  : tt.l.RAYCAST,
              textureLODThreshold:
                void 0 !== this.urlValues.texlodthreshold
                  ? parseInt(this.urlValues.texlodthreshold, 10)
                  : Ft,
              colorizeRooms: '1' === this.urlValues.colorizeRooms,
              colorizeChunks: '1' === this.urlValues.colorizeChunks,
              wireframe: '1' === this.urlValues.wireframe,
              meshTrimEnabled: Vt
            }
          }),
          this.engine.loadModule({ type: De.default }),
          this.engine.loadModule({
            type: j.default,
            config: { startingMode: this.quickstart ? ye.Ey.Panorama : null }
          }),
          this.engine.loadModule({
            type: Y.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider()
            }
          }),
          this.engine.loadModule({ type: L.default }),
          this.engine.loadModule({
            type: q.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModule({
            type: Z.default,
            config: {
              allowFloorChanges: Ot.Features[Xe.ws],
              focusBasedNav: Ot.Features[Xe.Q5]
            }
          }),
          this.engine.loadModule({ type: Oe.default }),
          this.engine
            .loadModule({
              type: w.default,
              config: {
                baseUrl: this.modelUrls.urlBase,
                api: M,
                modelId: this.modelId,
                organizationId: Lt || void 0,
                storageProvider: this.getStorageProvider(),
                queue: this.apiQueue
              }
            })
            .then((e) => {
              this.loadUserPolicyModules(e, Re, v, P, Ge, qe, Lt || void 0)
            }),
          this.engine.loadModule({
            type: he.default,
            config: {
              workshopApp: this.inWorkshop,
              container: s,
              mainDiv: r,
              queue: this.apiQueue
            }
          }),
          this.engine.loadModule({ type: Ie.default }),
          this.engine.loadModule({ type: pe }),
          this.engine.loadModule({ type: $.default }),
          this.engine.loadModule({
            type: te.default,
            config: { cameraPoseProxy: Ct }
          }),
          this.engine.loadModule({ type: ie.default }),
          this.engine.loadModuleBySymbol({ type: g.y.ORTHOGRAPHIC_CONTROLS }),
          this.engine.loadModule({
            type: ue.default,
            config: {
              enabled: '1' !== this.urlValues.nozoom,
              tiles: '0' !== this.urlValues.tiles
            }
          }),
          this.engine.loadModule({ type: F.default }),
          this.engine.loadModule({
            type: D.default,
            config: {
              enableWheel: '1' === this.urlValues.nozoom,
              focusBasedNav: Ot.Features[Xe.Q5]
            }
          }),
          this.engine.loadModule({ type: Ue.default }),
          this.engine.loadModuleBySymbol({ type: g.y.MESH_QUERY }),
          this.engine.loadModule({
            type: V.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModule({ type: Ae.default }),
          this.quickstart || this.engineTick.start(),
          this.quickstart || this.loadPanoControls(Et),
          await this.engine.waitForLoadingModules(),
          '0' !== this.urlValues.portal &&
            (this.engine.loadModule({ type: _e.default }),
            this.engine.loadModule({ type: we.default })),
          '0' !== this.urlValues.pin &&
            (this.engine.loadModule({ type: xe.default }),
            this.engine.loadModule({ type: Me.default })),
          this.engine.loadModule({
            type: J.default,
            config: {
              checkRenderModes: () => {
                const t = e.market.tryGetData(z.k3)
                if (t && t.isTourActive()) return !1
                const i = e.market.tryGetData(Pe.O)
                return !!i && i.isInside()
              }
            }
          }),
          this.engine.loadModule({
            type: oe.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModule({ type: me.default }),
          this.engine.loadModule({
            type: ke.default,
            config: { newTagsEnabled: qe }
          }),
          this.engine.loadModule({
            type: Be.default,
            config: { debug: '1' === this.urlValues.fcdbg }
          }),
          this.getStorageProvider() === ft.Xq.JSONSTORE &&
            this.engine.loadModule({
              type: ae.default,
              config: {
                modelId: this.modelId,
                baseUrl: this.modelUrls.urlBase,
                readonly: !0,
                queue: this.storeQueue
              }
            }),
          this.engine.loadModule({ type: le.default }),
          this.engine.loadModule({
            type: ne.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              parserOptions: {
                model: this.modelId,
                supportLinks: !this.urlValues.mls || '0' === this.urlValues.mls,
                keepLinkLabels: !0
              },
              queue: this.storeQueue
            }
          }),
          this.engine.loadModule({ type: se.default }),
          this.engine.loadModule({ type: re.default }),
          this.engine.loadModule({ type: R.default }),
          this.engine.loadModuleBySymbol({
            type: g.y.TOUR_DATA,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              looping: '1' === this.urlValues.lp,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModuleBySymbol({ type: g.y.TOUR_CONTROLS }),
          this.engine.loadModule({ type: Se.default }),
          this.engine.loadModule({ type: Q.default }),
          this.engine.loadModule({ type: X.default }),
          this.engine.loadModule({ type: ve.default }),
          this.engine.loadModuleBySymbol({ type: g.y.WEBVR }),
          this.engine.loadModuleBySymbol({
            type: g.y.SCAN_INFO,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider()
            }
          }),
          this.engine.loadModule({ type: Te.default }),
          this.engine.loadModule({ type: Ce.default }),
          this.engine.loadModule({ type: ot.default }),
          this.engine.loadModuleBySymbol({ type: g.y.VIDEO_RECORDER }),
          this.engine.loadModuleBySymbol({
            type: g.y.MEASUREMENT_MODE,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0
            }
          }),
          this.engine.loadModule({ type: A.default }),
          this.engine.loadModuleBySymbol({ type: g.y.DWELL_ANALYTICS }),
          pt &&
            this.engine.loadModuleBySymbol({
              type: g.y.SEARCH,
              config: { urlSearch: fe, workshop: this.inWorkshop }
            }),
          this.inWorkshop &&
            e.loadModuleBySymbol({
              type: g.y.TRASH,
              config: {
                modelId: this.modelId,
                queue: this.storeQueue,
                baseUrl: this.modelUrls.urlBase
              }
            }),
          this.engine.loadModuleBySymbol({
            type: g.y.WEBXR,
            config: {
              enableEventPositions: !1,
              framebufferScaling: Math.min(
                this.urlValues.xrframebuffer
                  ? parseFloat(this.urlValues.xrframebuffer)
                  : 0,
                1
              ),
              tracking: 0,
              navPanoSize: Bt
            }
          }),
          vt &&
            this.engine.loadModuleBySymbol({
              type: g.y.MODEL_RATING,
              config: {
                modelId: this.modelId,
                baseUrl: this.modelUrls.urlBase,
                queue: this.storeQueue
              }
            })
      }
      loadUserPolicyModules(e, t, i, n, s, r, o) {
        let a = !1
        s &&
          t &&
          ((a = e.isPolicyFlagEnabled(qe.uE)),
          a &&
            (i.updateSetting(qe.IA, a),
            i.updateSetting(qe.Mp, a),
            i.updateSetting(qe.pE, a && n.has(qe.pE)))),
          o &&
            (a || r) &&
            (this.engine.loadModule({
              type: O.default,
              config: {
                apiConfig: this.apiConfig,
                baseUrl: this.modelUrls.urlBase,
                modelId: this.modelId,
                organizationId: o,
                modelUrl: this.modelUrl,
                queue: this.apiQueue
              }
            }),
            a &&
              this.engine.loadModule({
                type: Ne.default,
                config: {
                  workshop: this.inWorkshop,
                  baseUrl: this.modelUrls.urlBase,
                  modelId: this.modelId,
                  startingNote: this.urlValues.note,
                  readonly: !1
                }
              }),
            r && this.engine.loadModule({ type: Re.default }),
            this.engine.loadModule({ type: Le.default }))
      }
      async unload(e) {
        try {
          await e.commandBinder.issueCommand(new lt.vy())
        } catch (e) {
          xt.debug(
            'showcase unload called before tour controls registered, ignoring stopTour',
            e
          )
        }
        await this.uiLoading,
          await this.showcaseGui.unloadUi().catch((e) => {
            xt.error(e)
          }),
          e.commandBinder.resetHooks()
      }
      async loginToModel(e, t) {
        xt.info(`Loading model ${e}`)
        const i = this.forceLogin
        await t.modelExists(e, { ignorePrefetch: i }).catch(async (e) => {
          if (i && (e instanceof ut.GT || e instanceof ut.V2))
            await this.showLoginScreen()
          else {
            if (!(e instanceof ut.GT)) throw e
            await this.login()
          }
        })
      }
      async loginToNote() {
        const e = this.modelId
        this.forceLogin && (await this.showLoginScreen(e))
      }
      async initWorkshopStorage() {
        this.inWorkshop &&
          this.getStorageProvider() === ft.Xq.MDS &&
          (await this.engine.getModule(gt.F),
          await this.engine.commandBinder.issueCommand(
            new vt.dS({ viewType: ft.XZ.SESSION })
          ))
      }
      loadInitialAppModules(e, t, i) {
        this.engine.loadModule({ type: K.default }),
          this.engine.loadModuleBySymbol({
            type: g.y.INPUT,
            config: {
              disableWheel: '0' === this.urlValues.wh,
              pointerPreventDefault:
                !this.settingOverrides ||
                !this.settingOverrides.hasOwnProperty(
                  'pointerPreventDefault'
                ) ||
                !!this.settingOverrides.pointerPreventDefault
            }
          }),
          this.engine.loadModuleBySymbol({
            type: g.y.SHOWCASE_ANALYTICS,
            config: {
              appName:
                (this.settingOverrides && this.settingOverrides.appName) ||
                'showcase',
              provider: this.urlValues.analytics,
              additionalValues: { ab_tests: e.serialize(), gpu: t },
              apiQueue: this.apiQueue,
              analyticsQueue: this.analyticsQueue
            }
          })
        let n = i.Features[St.AR] ? ft.hV.CACHE : ft.hV.NONE
        const s = this.urlValues.prefetch
        s && Object.values(ft.hV).includes(s) && (n = s),
          this.engine.loadModule({
            type: gt.F,
            config: {
              modelId: this.modelId,
              mdsEnabled: this.getStorageProvider() === ft.Xq.MDS,
              prefetchPolicy: n,
              baseUrl: this.apiHost
            }
          })
      }
      loadInitialDataModules(e, t) {
        const i =
            this.settingOverrides.disableMobileRedirect ||
            !(S.tq() || this.needsFramebustToPlayXR),
          n = !!this.openingNote || void 0,
          s = !!this.openingNote || void 0,
          r = !!this.openingNote || void 0
        this.engine.loadModule({
          type: be.default,
          config: {
            noUi: this.forceLogin,
            inWorkshop: this.inWorkshop,
            modelId: this.modelId,
            baseUrl: this.modelUrls.urlBase,
            quickstart: this.quickstart,
            autoplay: this.autoplay,
            allowPlayInIframe: i,
            startNewTab: '1' === this.urlValues.nt,
            hideTitle: s,
            hideBranding: r,
            hidePoweredBy: n
          }
        }),
          this.engine.loadModule({
            type: x.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModule({
            type: M.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue
            }
          }),
          this.engine.loadModule({
            type: E.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue,
              privledgedSignedUrls: '1' === this.urlValues.acl
            }
          }),
          this.engine.loadModule({
            type: N.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              storageProvider: this.getStorageProvider(),
              readonly: !0,
              queue: this.storeQueue
            }
          })
      }
      loadPanoControls(e) {
        ;(this.uiLoading = this.loadUI(!(e || this.forceLogin))),
          this.engine.loadModule({ type: ce.default }),
          this.engine.loadModule({ type: ee.default })
      }
      async loadSdkModule(e, t) {
        const i = this.engine
        async function n() {
          return './sdk/sdk-client.js'
        }
        async function s(t) {
          const n = await o.e(838).then(o.bind(o, 12629))
          await n.loadInterface(t, i, e)
        }
        return new Promise(async (e) => {
          await i.loadModuleBySymbol({
            type: g.y.SDK,
            config: {
              applicationKey: t || null,
              validationUrl: this.apiHost + '/api/v1/user/',
              getClientScriptUrl: n,
              setupExternalSdk: s,
              onClientConnect(t) {
                t && pt.w.setToken(t), e(!!t)
              },
              queue: this.apiQueue
            }
          })
        })
      }
      loadUI(e) {
        return Promise.all([
          this.engine.getModule(he.default),
          this.engine.getModule(pe)
        ]).then(([t, i]) => {
          ;(this.guiModule = t), (this.showcaseGui = i), e && t.loadUi(i.loadUi)
        })
      }
      async showLoginScreen(e) {
        var t, i
        this.engine.loadModule({
          type: k.default,
          config: {
            loginUrl:
              (null === (t = this.apiConfig) || void 0 === t
                ? void 0
                : t.authn_login_url) || '',
            registerUrl:
              (null === (i = this.apiConfig) || void 0 === i
                ? void 0
                : i.account_register_url) || '',
            modelId: e,
            baseUrl: this.modelUrls.urlBase,
            container: this.container
          }
        })
        return (await this.engine.getModule(k.default)).loadUi()
      }
      login() {
        return new Promise(async (e) => {
          this.engine.loadModule({
            type: B.default,
            config: {
              modelId: this.modelId,
              baseUrl: this.modelUrls.urlBase,
              container: this.container
            }
          })
          const t = await this.engine.getModule(B.default)
          this.engine.subscribe(U.L, () => {
            t.hidePasswordScreen(), e()
          }),
            t.showPasswordScreen()
        })
      }
    }
    o(21492)
    var Ot,
      Dt,
      Ct,
      Pt,
      It = o(8684)
    !(function (e) {
      const t = new It.M()
      e.connect = async function (e, i) {
        let n
        try {
          n = await e.connect()
        } finally {
          e.cancelConnecting()
        }
        return (function (e, t, i) {
          return new e(t).build(i)
        })(
          await (async function (e) {
            if (!e) throw new Error('Unabled to load the sdk')
            try {
              const i = await t.load(e, 'sdk-client')
              if (i && i.SdkBuilder && 'function' == typeof i.SdkBuilder)
                return i.SdkBuilder
            } catch (e) {}
            throw Error(`Could not load the sdk from ${e}`)
          })(n.scriptUrl),
          i.getFactory(n),
          n.serializedInterface
        )
      }
    })(Ot || (Ot = {})),
      (function (e) {
        e.CONNECT = 'postmessage.connect'
      })(Dt || (Dt = {})),
      (function (e) {
        ;(e.HANDSHAKE = 'postmessage.handshake'),
          (e.ACCEPT = 'postmessage.accept'),
          (e.REJECT = 'postmessage.reject')
      })(Ct || (Ct = {}))
    !(function (e) {
      ;(e[(e.IDLE = 0)] = 'IDLE'),
        (e[(e.CONNECTING = 1)] = 'CONNECTING'),
        (e[(e.HANDSHAKE = 2)] = 'HANDSHAKE'),
        (e[(e.CONNECTED = 3)] = 'CONNECTED'),
        (e[(e.REJECTED = 4)] = 'REJECTED')
    })(Pt || (Pt = {}))
    //读取配置
    window.addEventListener(
      'app-start',
      (e) => {
        !(function (e) {
          const t = new Engine(),
            i = new Showcase(!1, e)
          t.loadApplication(i, i.setError.bind(i)),
            S.Jm() || document.body.classList.add('no-touch')
          !(function (e) {
            class BundleSdkBootstrap {
              async connect(t, i = {}) {
                const n = await e.getModuleBySymbol(g.y.SDK)
                return Ot.connect(
                  new BundleConnector(n, i),
                  new BundleMessengerFactoryFetcher()
                )
              }
            }
            window.MP_SDK = new BundleSdkBootstrap()
          })(t)
        })(e.detail.config || {})
      },
      !0
    )
    class BundleConnector {
      constructor(e, t) {
        ;(this.sdk = e), (this.options = t)
      }
      connect() {
        return this.sdk.connect(
          `${window.location.protocol}//${window.location.host}`,
          this.options
        )
      }
      cancelConnecting() {}
    }
    class BundleMessengerFactoryFetcher {
      getFactory(e) {
        return e.messengerFactory
      }
    }
  })()
